25.说一下STL每种容器对应的迭代器
25.说一下STL每种容器对应的迭代器
| 容器 | 迭代器 |
|---|---|
| vector、deque | 随机访问迭代器 |
| stack、queue、priority_queue | 无 |
| list、(multi)set/map | 双向迭代器 |
| unordered_(multi)set/map、forward_list | 前向迭代器 |
1.vector迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
2.deque迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
3.list迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
| 迭代器 | 功能 |
|---|---|
| iterator begin(); | 返回指向 list 首元素的迭代器 |
| 若 list 为空,则返回的迭代器将等于 end() | |
| const_iterator begin() const; | 返回指向 list 首元素的迭代器 |
| 若 list 为空,则返回的迭代器将等于 end() | |
| iterator end(); | 返回指向 list 末元素后一元素的迭代器 |
| const_iterator end() const; | 返回指向 list 末元素后一元素的迭代器 |
| reverse_iterator rbegin(); | 返回指向逆向 list 首元素的逆向迭代器 |
| const_reverse_iterator rbegin() const; | 返回指向逆向 list 首元素的逆向迭代器 |
| reverse_iterator rend(); | 返回指向逆向 list 末元素后一元素的逆向迭代器 |
| const_reverse_iterator rend() const; | 返回指向逆向 list 末元素后一元素的逆向迭代器 |
4.set迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
5.multiset迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
| 函数声明 | 功能介绍 |
|---|---|
| iterator begin() | 返回multiset中起始位置元素的迭代器 |
| iterator end() | 返回multiset中最后一个元素后面的迭代器 |
| const_iterator cbegin() const | 返回multiset中起始位置元素的const迭代器 |
| const_iterator cend() const | 返回multiset中最后一个元素后面的const迭代器 |
| reverse_iterator rbegin() | 返回multiset中起始位置元素的反向迭代器,即rbegin |
| reverse_iterator rend() | 返回multiset最后一个元素下一个位置的反向迭代器,即rend |
| const_reverse_iterator crbegin() const | 返回multiset第一个元素的反向const迭代器,即cend |
| const_reverse_iterator crend() const | 返回multiset最后一个元素下一个位置的反向const迭代器,即crbegin |
6.map迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| rbegin() | 返回指向向量最后一个元素的反向迭代器 |
| rend() | 返回指向向量第一个元素之前位置的反向迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
| crbegin() | 返回指向向量最后一个元素的反向迭代器,不能用于修改元素 |
| crend() | 返回指向向量第一个元素之前位置的反向迭代器,不能用于修改元素 |
| 函数声明 | 功能介绍 |
|---|---|
| iterator begin() | 返回multiset中起始位置元素的迭代器 |
| iterator end() | 返回multiset中最后一个元素后面的迭代器 |
| const_iterator cbegin() const | 返回multiset中起始位置元素的const迭代器 |
| const_iterator cend() const | 返回multiset中最后一个元素后面的const迭代器 |
| reverse_iterator rbegin() | 返回multiset中起始位置元素的反向迭代器,即rbegin |
| reverse_iterator rend() | 返回multiset最后一个元素下一个位置的反向迭代器,即rend |
| const_reverse_iterator crbegin() const | 返回multiset第一个元素的反向const迭代器,即cend |
| const_reverse_iterator crend() const | 返回multiset最后一个元素下一个位置的反向const迭代器,即crbegin |
7.unordered_(multi)set迭代器
| 迭代器 | 功能 |
|---|---|
| begin() | 返回指向向量第一个元素的迭代器 |
| end() | 返回指向向量最后一个元素之后位置的迭代器 |
| cbegin() | 返回指向向量第一个元素的迭代器,不能用于修改元素 |
| cend() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |

浙公网安备 33010602011771号