25.说一下STL每种容器对应的迭代器
发布时间 2023-08-03 07:32:06作者: CodeMagicianT
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() |
返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |