C++ STL模板库

Posted Ndddup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ STL模板库相关的知识,希望对你有一定的参考价值。

list vector  set map区别

本质解释:

对比:

1)vector与数组

数组声明时要指定大小、vector可变。

两者内存都是连续的。

2)vector与list

vector是连续的内存,list是双向连接表,在内存中不一定连续。

当数值内存不够时,vector会重新申请一块足够大的连续内存,把原来的数据拷贝到新的内存里面;list因为不用考虑内存的连续,因此新增开销比vector小。

list只能通过指针访问元素,随机访问元素的效率特别低,在需要频繁随机存取元素时,使用vector更加合适。

当向vector插入或者删除一个元素时,需要复制移动待插入元素右边的所有元素;因此在有频繁插入删除操作时,使用list更加合适。

 

讨论:

vector可添加元素与减少元素,添加元素时增加内存,删除时只是删除内容,并未释放删除元素原先占用的内存。

vector只有在调用析构时才释放,所以要对于不断删减的

以上是关于C++ STL模板库的主要内容,如果未能解决你的问题,请参考以下文章

C++的标准模板库(STL)简介

C++标准模板库STL

C++智能指针类模板

C++标准模板库(STL)——vector常见用法详解

C++标准模板库(STL)——queue常见用法详解

C++标准模板库(STL)——stack常见用法详解