使用前提
使用vector容器之前必须包含头文件 #include<vector>
1.定义
vector容器类似于一种可扩展的数组
1.1与普通数组的区别
摘自C++ vector容器详解_c++容器vector-优快云博客
1.数组是静态的,长度不可改变,而vector可以动态扩展,增加长度
(动态扩展:动态扩展并不是在原空间之后续接新空间,而是找到比原来更大的内存空间,将原数据拷贝到新空间,释放原空间)
2.数组内数据通常存储在栈上,而vector中数据存储在堆上
1.2 vector函数的构造方式
1.vector<T> v ; //使用模板类,默认构造函数
2.vector(v.begin(),v.end()); //将[v.begin(),v.end())区间中的元素拷贝给本身
3.vextor(n,elem); //将n个elem拷贝给本身
4.vector(const vector &v) ; //拷贝构造函数
2.vector的打印
2.1 利用迭代器实现对vector的打印
void printVector(vector<int>& v)
{ //利用迭代器打印 v
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
}
3.vector的幅值
vector& operator=(const vector &vec);————-重载等号操作符
assign(beg, end);————————————将[beg, end)区间中的数据拷贝赋值给本身。
assign(n, elem);————————————-将n个elem拷贝赋值给本身。
void printVector(vector<int> v)
{
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
}
//vector容器构造
void test1()
{
vector<int> v1;//默认构造 无参构造
for (int i = 0; i < 10; ++i)
{
v1.push_back(i);
}
cout << "v1:"; printVector(v1); cout << endl;
//赋值 operator=
vector<int> v2;
v2 = v1;//重载等号= 操作符
cout << "v2:"; printVector(v2); cout << endl;
//赋值 assign 这不是构造 是赋值
vector<int> v3;
v3.assign(v1.begin(), v1.end());//将[beg, end)区间中的数据拷贝赋值给本身。
cout << "v3:"; printVector(v3); cout << endl;
//赋值 assign 这不是构造 是赋值
vector<int> v4;
v4.assign(10, 100);//将n个elem拷贝赋值给本身。
cout << "v4:"; printVector(v4); cout << endl;
}