c++中set容器的遍历和读取某一位置的值
c++中set容器的遍历和读取某一位置的值
在C++中,std::set 是一个有序容器,它按照元素的值自动排序。
访问最后一个元素:
std::set 提供了 rbegin() 成员函数,它返回一个指向容器中最后一个元素的反向迭代器。通过解引用这个迭代器,你可以得到最后一个元素。
#include <set>
#include <iostream>
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
if (!mySet.empty()) {
// 获取最后一个元素
int lastElement = *mySet.rbegin();
std::cout << "Last element: " << lastElement << std::endl;
} else {
std::cout << "Set is empty." << std::endl;
}
return 0;
}
访问倒数第三个元素:
要访问倒数第三个元素,你可以使用 rbegin() 成员函数获取指向倒数第一个元素的迭代器,然后递增这个迭代器来获取倒数第三个元素。需要注意的是,如果 std::set 中元素少于三个,尝试访问倒数第三个元素将会导致未定义行为。
#include <set>
#include <iostream>
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
if (mySet.size() >= 2) {
// 获取第二个元素
auto it = mySet.rbegin();
++it; // 递增迭代器指向第二个元素
++it; // 递增迭代器指向第三个元素
int secondElement = *it;
std::cout << "Second element: " << secondElement << std::endl;
} else {
std::cout << "Set does not have a second element." << std::endl;
}
return 0;
}