C++的set 是有序容器,它的遍歷始終是按順序進行的,不支持直接的反向遍歷。如果需要進行反向遍歷,可以通過使用逆向迭代器來實現。逆向迭代器是一種特殊的迭代器,可以以相反的方向遍歷容器元素。例如,可以使用rbegin() 和 rend() 方法獲取set的逆向迭代器,然后進行遍歷操作。示例代碼如下:
#include <iostream>
#include <set>
int main() {
std::set<int> myset = {1, 2, 3, 4, 5};
// 正向遍歷
for (auto it = myset.begin(); it != myset.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 逆向遍歷
for (auto it = myset.rbegin(); it != myset.rend(); ++it) {
std::cout << *it << " ";
}
return 0;
}
在上面的示例代碼中,我們首先使用正向迭代器遍歷set元素,然后使用逆向迭代器進行反向遍歷。輸出結果為:
1 2 3 4 5
5 4 3 2 1