对容器、迭代器的理解

Stl的容器分顺序容器和关联容器。顺序容器有vectorlistdeque

顺序容器适配器有stackqueuepriority_queue。关联容器有mapsetmultimapmultiset

顺序容器特点是对单一类型的元素根据位置存储和访问,vectordeque用连续的空间存储元素,支持随机快速查找(vectordeque更快一些),但在容器中间进行插入删除操作时,需要较多的操作。List则可以快速的插入或删除。根据程序的需要,如果随机查找占主要操作较多就选择vector容器,如果在容器中间插入、删除较多,则选择list

容器的迭代器相当于没有名字的下标,但对迭代器操作提供比使用下标更安全。对迭代器解引用获得元素的值。不同的地方是,list迭代器的加剪操作,因为list的元素的存储地址是不连续的,对list迭代器加1,获得的是下一个元素,而不是下一个元素的地址。

 

如果程序实现的是字典式的查询,则依据map的键-值对的特点,键与值一一对应,选择map容器。

如果只希望查看某一项是否有过记录,则依据set只有唯一键的特点,选择set容器

使用适配器使容器具有该适配器类型的特点,使用stack,使容器具有栈一样的特点:只能在一段操作插入、删除,先进后出,典型的例子是十进制数转二进制。


你可能感兴趣的:(迭代器,容器)