C++中有个容器类。何为容器类,在现实生活中,容器,可以装载其他事物。同理,在C++中,容器是指持有其他对象的对象(禁止套娃)。说白了,容器就是存储对象的储存柜。对象,小的方面可以理解为一个变量,大的方面可以理解为一个类。而迭代器的作用是对元素进行灵活的访问,它的工作就是在容器中挑选元素并将其呈献给迭代器的使用者。作为一个类。(迭代器居然是个类,有意思。)迭代器提供了一层抽象。这样就将容器内部细节和遍历方式分割开来。(这么喜欢抽象)就是说,使用迭代器的时候,不需要管你使用了哪种容器,只管去遍历就行了。换句话说,迭代器的代码是通用的?有意思。
容器分类
| 序列容器| vector(动态数组),list(链表),deque(双端队列)|
|容器适配器|queue(队列),stack()栈,priority_queue(优先队列)|
| 关联式容器 | set,map,multiset,multimap |
迭代器种类
1.输入迭代器:只读,一次传递。
2.输出迭代器:只写,一次传递。
3.前向迭代器:多次读/写。
4.双向迭代器。
5.随机访问迭代器。
迭代器的定义:
::iterator
::const_iterator
示例:
vector::iterator it
注意:它定义的是一个类型,而非值。
每一个容器都有一个起始成员函数begin()以产生指向容器中起始元素的迭代器,和一个末尾成员函数end()用以产生容器的超越末尾的标记迭代器。如果容器是一个const(常)容器,则begin()和end()产生const(常)迭代器,即不允许更换这些迭代器所指向的元素。实话说,const这个关键字很讨厌。有机会聊聊。
迭代器最新的定义方式:
for(const string &s : strs)