在C++中,std::set
是一个有序集合,它会自动按键值排序。默认情况下,遍历std::set
时是从最小元素到最大元素的顺序。然而,std::set
并没有提供直接反向遍历的功能。
但是,你可以通过创建一个从最大元素到最小元素的临时std::set
来实现反向遍历。这里有一个示例代码:
#include <iostream>
#include <set>
int main() {
std::set<int> my_set = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 创建一个从最大元素到最小元素的临时set
std::set<int> reversed_set(my_set.rbegin(), my_set.rend());
// 遍历临时set并输出元素
for (const auto& elem : reversed_set) {
std::cout << elem << " ";
}
return 0;
}
在这个示例中,我们首先创建了一个名为my_set
的std::set
,然后使用迭代器范围构造函数从my_set
的rbegin()
到rend()
创建了一个名为reversed_set
的临时std::set
。最后,我们遍历reversed_set
并输出其元素。