📅  最后修改于: 2023-12-03 15:13:57.036000             🧑  作者: Mango
在 C++ 中,STL(标准模板库)提供了许多各种容器类的实现,包括vector、list、set、multiset、map、multimap 等等。其中,set 和 multiset 用来存储唯一的元素,并且按一定顺序排序,set 中每个元素的值唯一,而 multiset 中可以存在相同元素的值。
在 STL 中,除了常用的 begin() 和 end() 方法获取容器的最开始和结束位置之外,还提供了 crbegin() 和 crend() 方法来获取逆序的开始和结束位置。在 set 和 multiset 中,这两个方法同样可以用来获取这些容器的逆序开始和结束位置。
crbegin() 方法返回容器的逆序开始位置的 const_iterator 对象。
#include <iostream>
#include <set>
int main() {
std::set<int> s = {1, 2, 3, 4, 5};
std::set<int>::const_reverse_iterator it = s.crbegin();
while (it != s.crend()) {
std::cout << *it << " ";
++it;
}
return 0;
}
输出:
5 4 3 2 1
使用 crbegin() 方法可以方便地获取 set 容器中的逆序迭代器。
crend() 方法返回容器的逆序结束位置的 const_iterator 对象。
#include <iostream>
#include <set>
int main() {
std::set<int> s = {1, 2, 3, 4, 5};
std::set<int>::const_reverse_iterator it = s.crbegin();
std::set<int>::const_reverse_iterator end = s.crend();
while (it != end) {
std::cout << *it << " ";
++it;
}
return 0;
}
输出:
5 4 3 2 1
使用 crend() 方法和 crbegin() 方法结合使用可以方便地获取 set 容器的逆序迭代器范围。
在 C++ STL 中,crbegin() 和 crend() 方法可以帮助我们方便地获取 set 和 multiset 容器的逆序迭代器,方便我们进行逆序遍历操作。同时,我们也可以通过组合使用 crbegin() 和 crend() 方法来获取逆序迭代器范围,方便我们进行迭代器操作处理。