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() 返回指向向量最后一个元素之后位置的迭代器,不能用于修改元素