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() | 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)