C++学习笔记---容器(container)使用教程

C++STL 中,常见的容器可分为「顺序容器」(sequential container)「关联容器」(associative container)

标准的 STL 「顺序容器」包括:

vectordequelistforward_listarraystring

标准的 STL「关联容器」可分为「关键字有序」「关键字无序」

关键字有序:mapsetmultimapmultiset

关键字无序: unorder_mapunorder_setunorder_multimapunorder_multiset

vector

vector将元素保存在连续的内存空间中,支持随机存取。由于元素是连续存储的,在这两种容器中间插入和删除元素,需要修改该位置之后所有元素的位置,效率较低。如果不清楚元素的确切个数,请使用vector,如果清楚元素的确切个数,请使用数组。

string

string将元素保存在连续的内存空间中,支持随机存取。由于元素是连续存储的,在这两种容器中间插入和删除元素,需要修改该位置之后所有元素的位置,效率较低。

listforward_list

listforward_list分别对应数据结构中的双向链表和单向链表。两个容器将元素的设计目的是让容器在任何位置的插入和删除效率提高,但其代价是容器不支持随机存取,查找效率较低。

deque

deque是一种更为复杂的数据结构。与stringvector类似,支持快速随机访问,并且在其两端添加和删除元素的效率都很高。但是,由于deque中元素也是连续存储,在其中间插入和删除元素的效率也较低。

array

array是一种更安全的数组,与内置数组类似,不支持动态内存分配,支持元素随机访问。

-------------本文结束感谢您的阅读-------------
坚持整理学习笔记,您的支持将鼓励我继续整理下去!