📅  最后修改于: 2023-12-03 15:41:45.334000             🧑  作者: Mango
在C++中,可以使用STL中的set来存储一组有序的唯一元素。当需要访问set的最后一个元素时,可以使用rbegin()和rend()函数来实现。
rbegin()函数返回一个迭代器,指向set中的最后一个元素。由于set是有序的,因此最后一个元素即为最大元素。
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> myset = {1, 2, 3, 4, 5};
auto it = myset.rbegin();
cout << "最后一个元素为:" << *it << endl;
return 0;
}
在上面的代码中,使用rbegin()函数获取set中最后一个元素的迭代器,然后通过解引用操作得到其值输出。
如果程序需要在循环中访问set的最后一个元素,那么可以使用C++11中引入的crbegin()函数。
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> myset = {1, 2, 3, 4, 5};
for (auto it = myset.crbegin(); it != myset.crend(); ++it) {
cout << "当前元素为:" << *it << endl;
if (it == myset.crbegin()) {
cout << "最后一个元素为:" << *it << endl;
}
}
return 0;
}
在上面的代码中,使用crbegin()函数获取set中最后一个元素的迭代器,然后在循环中访问set中的每个元素并输出,如果发现当前迭代器为最后一个元素的迭代器,那么就输出最后一个元素。
通过使用rbegin()函数和crbegin()函数,C++程序员可以方便地访问set的最后一个元素。需要注意的是,在使用迭代器时应该保证set不为空,否则会导致未定义的行为。