📜  访问 set c++ 的最后一个元素(1)

📅  最后修改于: 2023-12-03 15:41:45.334000             🧑  作者: Mango

C++如何访问set的最后一个元素

在C++中,可以使用STL中的set来存储一组有序的唯一元素。当需要访问set的最后一个元素时,可以使用rbegin()和rend()函数来实现。

1.使用rbegin()函数

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中最后一个元素的迭代器,然后通过解引用操作得到其值输出。

2.使用C++11中的crbegin()函数

如果程序需要在循环中访问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不为空,否则会导致未定义的行为。