文章目录
- 【 1. vector 的声明与初始化 】
 - 1.1 vector 的声明
 - 1.2 vector 的初始化
 - 1.2.1 构造一个空的 vector
 - 1.2.2 指定数量初值的方式初始化 vector
 - 1.2.3 迭代器的方式初始化
 - 1.2.4 构造一个相同的 vector
 
- 【 2. vector 的相关操作 】
 - 2.1 插入元素
 - 2.1.1 在vector的末尾插入新元素
 - 2.1.2 在迭代器的前面插入新元素
 - 2.1.3 覆盖原有的 vector
 
- 2.2 删除元素
 
- vector数组是可以 存放任意数据类型 的  动态数组。
和普通数组类似,可以通过下标对数组中的元素进行引用。 - 使用vector数组要在 头文件中加 
#include <vector> - vectors 包含着一系列连续存储的元素,其行为和数组类似。访问 vector 中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在vector中插入元素则是线性时间复杂度。
 
【 1. vector 的声明与初始化 】
1.1 vector 的声明
- 声明
 
vector<int> vec;//声明一个存放int型的向量vec
 
1.2 vector 的初始化
1.2.1 构造一个空的 vector
- 基本语法
构造一个空的vector。 
vector<int> myvector();
//或者
vector<int> myvector;
 
- 举例1
构造一个空的 vector myvector。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{ 
	vector<int> myvector();
	return 0;
}
 

1.2.2 指定数量初值的方式初始化 vector
- 基本语法
构造一个初始放入num个值为val的元素的vector。 
  vector( size_type num, const TYPE &val );
 
- 举例1
构造一个 5 个 3 的 vector。这里 myvec.size() 返回 myvec 元素数量大小。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{ 
	vector<int> myvec(5, 3);
	for (int j=0;j<myvec.size();++j)
		cout << myvec[j]<<endl;
	return 0;
}
 

1.2.3 迭代器的方式初始化
- 基本语法
构造一个初始值为 [start,end) 区间元素的vector。 
vector( input_iterator start, input_iterator end );
 
- 举例1
将 myvec 初始化为 [地址a,地址a+3)的元素 。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{ 
	int a[5] = { 1, 2, 3, 4, 5 };
	vector <int>myvec( a,a+3 );
	for (int j=0;j<myvec.size();++j)
		cout << myvec[j]<<endl;
	return 0;
}
 

- 举例2
将 myvec 初始化为 [地址&a[1],地址&a[4])的元素 。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{ 
	int a[5] = { 1, 2, 3, 4, 5 };
	vector<int> myvec(&a[1], &a[4]);
	for (int j=0;j<myvec.size();++j)
		cout << myvec[j]<<endl;
	return 0;
}
 

1.2.4 构造一个相同的 vector
- 基本语法
构造一个与 AnthorVector 相同的vector 。 
vector( const vector &AnthorVector);
 
- 举例1
构造一个与 myvec 相同的 myvec2 。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{ 
	int a[5] = { 1, 2, 3, 4, 5 };
	vector<int> myvec(&a[1], &a[4]);
	vector <int>myvec2(myvec);
	for (int j=0;j<myvec.size();++j)
		cout << myvec2[j]<<endl;
	return 0;
}
 

【 2. vector 的相关操作 】

 下面给出几个常用的操作及案例。
2.1 插入元素
2.1.1 在vector的末尾插入新元素
- 基本语法
在 myvec 的末尾添加元素newvalue。 
myvec.push_back(newvalue);
 
- 举例1
在 myvec 的末尾添加元素1。 
#include<vector>
using namespace std;
int main()
{
	vector<int> myvec(5, 3);
	myvec.push_back(1);
	for (int j = 0; j <myvec.size(); ++j)
		cout << myvec[j] << endl;
	return 0;
}
 

2.1.2 在迭代器的前面插入新元素
- 基本语法
在 myvec 的前面添加元素newvalue。 
vector<int>::iterator it;
it=vec.begin();
vec.insert(it,newvalue);
 
- 举例1
在 myvec 的前面添加元素1。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> myvec(5, 3);
	vector<int>::iterator it;
	it = myvec.begin();
	myvec.insert(it, 1);
	for (int j = 0; j <myvec.size(); ++j)
		cout << myvec[j] << endl;
	return 0;
}
 

2.1.3 覆盖原有的 vector
- 基本语法
在vector中加入NewNum个NewValue元素,同时清除掉以前的元素。 
vec.assign(NewNum,NewValue);//现在vec中只有NewNum个NewValue
 
- 举例1
现在vector中只有2个1。 
#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> myvec(5, 3);
	myvec.assign(2, 1);//现在vector中只有2个1
	for (int j = 0; j <myvec.size(); ++j)
		cout << myvec[j] << endl;
	return 0;
}
 

2.2 删除元素
- 基本语法
 
//删除最后一个元素
vec.pop_back();
//删除指定位置的元素
vec.erase(vec.begin());//删除第一个位置的元素值
//清除所有元素
vec,clear();
 
- 举例1
删除 myvec 的最后一个元素 
#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> myvec(5, 3);
	myvec.pop_back();
	for (int j = 0; j <myvec.size(); ++j)
		cout << myvec[j] << endl;
	return 0;
}
 



















