C++ 概念: ReversibleContainer
来自cppreference.com
可逆容器 (ReversibleContainer
) 是拥有满足双向迭代器 (BidirectionalIterator
) 或随机访问迭代器 (RandomAccessIterator
) 要求的迭代器的容器 (Container
) 。这些迭代器允许可逆容器 (ReversibleContainer
) 被以逆序迭代。
目录 |
[编辑] 要求
X
|
容器类型 |
T
|
元素类型 |
a
|
X 类型对象
|
[编辑] 类型
表达式 | 返回类型 | 条件 | 复杂度 |
---|---|---|---|
X::reverse_iterator | 其 value_type 为 T 的迭代器 |
reverse_iterator<iterator> | 编译时 |
X::const_reverse_iterator | 其 value_type 为 T 的常迭代器 |
reverse_iterator<const_iterator> | 编译时 |
[编辑] 方法
表达式 | 返回类型 | 条件 | 复杂度 |
---|---|---|---|
a.rbegin() | reverse_iterator ; 对常 a 为 const_reverse_iterator |
reverse_iterator(end()) | 常数 |
a.rend() | reverse_iterator ; 对常 a 为 const_reverse_iterator |
reverse_iterator(begin()) | 常数 |
a.crbegin() | const_reverse_iterator | const_cast<X const&>(a).rbegin() | 常数 |
a.crend() | const_reverse_iterator | const_cast<X const&>(a).rend() | 常数 |
[编辑] 示例
下列示例在(拥有随机访问迭代器的) vector 上逆序迭代。
运行此代码
#include <vector> #include <iostream> int main() { std::vector<int> v = {3, 1, 4, 1, 5, 9}; for(std::vector<int>::reverse_iterator i = v.rbegin(); i != v.rend(); ++i) { std::cout << *i << '\n'; } }
输出:
9 5 1 4 1 3
[编辑] 标准库
(C++11 起) |
静态的相接数组 (类模板) |
双端队列 (类模板) | |
双链表 (类模板) | |
动态的相接数组 (类模板) | |
键值对的集合,按照键排序,键是唯一的 (类模板) | |
键值对的集合,按照键排序 (类模板) | |
唯一键的集合,按照键排序 (类模板) | |
键的集合,按照键排序 (类模板) |