目录
1,基本概念
vector数据结构和数组非常相似,也称为单端数组;
vector与普通数组区别:数组是静态空间,而vector是可以动态扩展的;
vector的动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝到新空间,释放原空间;
下边这张图片展示了vector容器中的相关属性:
vector容器的迭代器是支持随机访问的迭代器;
2,vector构造函数
构造函数的作用是创建vector容器。
函数原型:
vector<T> v; //采用模板实现类实现,默认构造函数
vector(v.begin(), v.end()); //将v[begin(), end())区间中的元素拷贝给本身
vector(n, elem); //构造函数将n个elem拷贝给本身
vector(const vector& vec); //拷贝构造函数
以下代码分别通过上述方式构造vector容器:
#include <iostream>
using namespace std;
#include <string>
#include <vector>
void printVector(vector<int>& v)
{
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
void test01()
{
vector<int> v1; //默认构造函数
for (int i = 0; i < 10; i++)
{
v1.push_back(i);
}
printVector(v1);
vector<int> v2(v1.begin(), v1.end()); //通过区间方式进行构造
printVector(v2);
vector<int> v3(5, 100); //通过n个elem的方式构造
printVector(v3);
vector<int> v4(v3); //拷贝构造
printVector(v4);
}
int main()
{
test01();
system("pause");
return 0;
}
运行结果:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
100 100 100 100 100
100 100 100 100 100
请按任意键继续. . .
3,赋值操作
功能:给vector容器进行赋值;
函数原型:
vector& operator=(const vector& vec); //重载等号操作符
assign(beg,end); //将[beg,end)区间中的数据拷贝赋值给本身
assign(n,elem); //将n个饿了么拷贝赋值给本身
以下代码通过上述方式进行赋值:
#include <iostream>
using namespace std;
#include <string>
#include <vector>
void printVecto