给定一个Set,任务是在C++ STL中查找此Set的最大和最小元素。
例子:
Input: set={1, 6, 15, 10, 5}
Output: max = 15, min = 1
Input: set={10, 20, 30, 40, 50, 60}
Output: max = 60, min = 10
- 使用set.begin()和set.end()方法
方法:集合中的元素按排序顺序存储。因此,集合中的最小元素将驻留在第一个元素中,最大元素将驻留在最后一个元素中。因此,可以分别通过set.begin()和set.end()方法来获取此第一个和最后一个元素。
程序:
#include
using namespace std; // Function to print the set void printSet(set my_set) { // Print the set cout << "Set: "; for (auto i : my_set) cout << i << " "; cout << '\n'; } // Function to find the maximum element int findMax(set my_set) { // Get the maximum element int max_element; if (!my_set.empty()) max_element = *(my_set.rbegin()); // return the maximum element return max_element; } // Function to find the minimum element int findMin(set my_set) { // Get the minimum element int min_element; if (!my_set.empty()) min_element = *my_set.begin(); // return the minimum element return min_element; } int main() { // Get the set set my_set; // Add the elements in the set my_set.insert(1); my_set.insert(6); my_set.insert(15); my_set.insert(10); my_set.insert(5); // Print the set printSet(my_set); // Get the minimum element cout << "Minimum element: " << findMin(my_set) << endl; // Get the maximum element cout << "Maximum element: " << findMax(my_set) << endl; } 输出:Set: 1 5 6 10 15 Minimum element: 1 Maximum element: 15
- 使用set.rbegin()和set.rend()方法
方法:集合中的元素按排序顺序存储。因此,集合中的最小元素将驻留在第一个元素中,最大元素将驻留在最后一个元素中。因此,可以分别通过set.rend()和set.rbegin()方法获取此第一个和最后一个元素。
程序:
#include
using namespace std; // Function to print the set void printSet(set my_set) { // Print the set cout << "Set: "; for (auto i : my_set) cout << i << " "; cout << '\n'; } // Function to find the maximum element int findMax(set my_set) { // Get the maximum element int max_element; if (!my_set.empty()) max_element = *my_set.rbegin(); // return the maximum element return max_element; } // Function to find the minimum element int findMin(set my_set) { // Get the minimum element int min_element; if (!my_set.empty()) min_element = *(--my_set.rend()); // return the minimum element return min_element; } int main() { // Get the set set my_set; // Add the elements in the set my_set.insert(1); my_set.insert(6); my_set.insert(15); my_set.insert(10); my_set.insert(5); // Print the set printSet(my_set); // Get the minimum element cout << "Minimum element: " << findMin(my_set) << endl; // Get the maximum element cout << "Maximum element: " << findMax(my_set) << endl; } 输出:Set: 1 5 6 10 15 Minimum element: 1 Maximum element: 15
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。