stl的容器,迭代器和算法具有哪些子概念?vector、depque、list,set,multiset,map,multimap各容器的迭代器分别属于哪种迭代器
时间: 2024-01-06 09:03:22 浏览: 162
STL的容器、迭代器和算法都有一些子概念,具体如下:
1. 容器:
- 序列式容器:元素按照线性顺序排列,比如vector、deque、list。
- 关联式容器:元素按照某种特定的规则进行排序,比如set、multiset、map、multimap。
- 容器适配器:用来修改现有容器接口的类模板,比如stack、queue。
2. 迭代器:
- 输入迭代器:只能读取容器中的元素,不能修改,比如istream_iterator、const T*。
- 输出迭代器:只能写入容器中的元素,不能读取,比如ostream_iterator、T*。
- 前向迭代器:可以读取和修改容器中的元素,支持++运算符,比如list::iterator。
- 双向迭代器:可以读取和修改容器中的元素,支持++和--运算符,比如deque::iterator。
- 随机访问迭代器:可以读取和修改容器中的元素,支持所有迭代器运算符,比如vector::iterator。
3. 算法:
STL算法包括很多功能,比如查找、排序、拷贝、替换、合并、反转等等。
下面是各容器的迭代器类型:
- vector、deque、array:支持随机访问迭代器(random access iterator)。
- list、forward_list:支持双向迭代器(bidirectional iterator)。
- set、multiset、map、multimap:支持双向迭代器(bidirectional iterator)。
- unordered_set、unordered_multiset、unordered_map、unordered_multimap:支持前向迭代器(forward iterator)。
阅读全文