目录
vector是什么?
vector的使用
vector的构造
vector iterator的使用
vector空间增长问题
vector的增删查改
push_back和pop_back
operator[]
总结
vector是什么?
vector是什么呢?按照英文来说,vector的英文是向量、矢量的意思。我们在cpp的网址上搜索vector,结果如下:
从搜索结果来说,vector是一个模板类,是顺序表。
因此,我们知道,vector是一个可以改变大小数组的序列容器。
有了前面学习数据结构的知识,我们使用一下vector。
vector的使用
我们接下来使用以下vector的常见接口。
vector的构造
这些都是常见的vector的构造。因为vector是一个模板类,所以vector也可以创建vector<int>类的实例和string类的实例。这样就像一个二维数组一样。
vector iterator的使用
说起迭代器大家肯定不陌生,因为string那里我们分享过,vector的迭代器和string是一样的,我们直接上代码。
vector空间增长问题
还是我们熟悉的几个接口,size、capacity、empty、resize、reserve。
我们先看一下vs环境下vector的空间开辟。
接下来我们看一resize和reserve是怎么扩容的。
看起来,resize和reserve的扩容和string是一样的,都是如果比当前空前小,就不缩小,只有比当前空间大才扩容。
vector的增删查改
我们说了,vector是一个顺序表,按照数据结构我们知道顺序表是可以增删查改的。主要有一下几个接口:push_back、pop_back、find、insert、erase、swap和operator[]。我们主要介绍push_back、pop_back和operator[]。
push_back和pop_back
这个和顺序表的尾插和尾删一样。为什么没有头插和头插呢?因为头删和头插都要挪动数据,时间复杂度很高。
operator[]
运算符重载,让我们可以按照数组一样使用vector。
总结
以上就是vector常见的用法了,还有一些函数,大家可以在cplusplus上面查找相关的的用法。
cplusplus.com - The C++ Resources Network