c++set反向迭代器
时间: 2023-08-28 18:07:41 浏览: 57
C++的`std::set`是一个有序的容器,它不支持直接的反向迭代器。然而,你可以使用`std::set`的`rbegin()`和`rend()`成员函数来获取反向迭代器,从而实现反向遍历。
这里是一个简单的示例代码,展示了如何使用反向迭代器遍历`std::set`:
```cpp
#include <iostream>
#include <set>
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
// 使用正向迭代器遍历
std::cout << "正向遍历:";
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用反向迭代器遍历
std::cout << "反向遍历:";
for (auto it = mySet.rbegin(); it != mySet.rend(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
正向遍历:1 2 3 4 5
反向遍历:5 4 3 2 1
```
在上面的示例中,我们使用了`rbegin()`和`rend()`成员函数来获取反向迭代器,并使用它们进行反向遍历。请注意,使用反向迭代器遍历时,迭代器的递增操作应该是`++it`而不是`--it`,这是因为反向迭代器的递增操作实际上是向前移动到容器中的较小元素。
希望这个例子能帮助到你!如果有任何进一步的问题,请随时提问。