向量(vector)相关使用方法:
1、push_back //在数组的最后添加一个数据
2、pop_back //删除数组的最后一个数据
3、at //得到编号位置的数据
4、begin //得到数组的头指针
5、end //得到数组最后一个单元+1的指针
6、front //得到数组第一个数据的引用
7、back //得到数组最后一个数据的引用
8、max_size //得到vector最大容量多少
9、capacity //得到当前vector分配的大小
10、size //当前使用数据的大小
11、resize //改变当前使用数据的大小,如果它比当前使用的大,则默认填充(v.resize(2*v.size,0))
12、reserve //改变当前vector所分配的大小
13、erase //删除当前指针所指向的数据
14、clear //清空当前vector中元素
15、rbegin //将vector翻转后的开始指针返回
16、rend //将vector翻转后的末尾指针返回
17、empty //判断vector是否为空
18、swap //与另一个vector交换数据
vector 初始化及赋值:
vector <数据类型> 标示符;
vector <数据类型> 标示符(最大容量);
vector <数据类型> 标示符(最大容量,初始所有值);
vector <int> array(5,1); //数组大小为5个,每个值初始为1;
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v(5,1);
for(int i=0;i<5;i++)
cout <<v[i]<<" ";
cout<<endl;
return 0;
}
使用数组对vector进行初始化:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9};
vector <int> v(a+1,a+3);
for(vector <int>::iterator i = v.begin(); i != v.end(); i++)
cout <<*i<<" ";
cout<<endl;
return 0;
}
vector 数组是前闭后开,所以输出第二个和第三个;
vector 数组的排序:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int a[10]={1,22,113,24,25,36,437,18,9};
vector <int> v(a+1,a+7);
sort(v.begin(),v.end()); //从小到大排序
sort(v.rbegin(),v.rend()); //从大到小排序
cout<<v[0]<<endl;
return 0;
}
对于二维 vector 的定义:
vector <vector <int> > v(10,vector <int>(0));
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<vector<int> > v(10,vector <int>(0));
for(int i=0;i<10;i++)
for(int j=0;j<=9;j++)
v[i].push_back(j);
for(int i=0;i<10;i++){
for(int j=0;j<v[i].size();j++)
cout<<v[i][j]<<" ";
cout<<endl;
}
return 0;
}
定义一个行列都变化的二维vector:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector <vector<int> > v;
vector <int> vv;
for(int i=0;i<10;i++){
v.push_back(vv);
for(int j=0;j<=9;j++)
v[i].push_back(j);
}
for(int i=0;i<10;i++){
for(int j=0;j<v[i].size();j++)
cout<<v[i][j]<<" ";
cout<<endl;
}
return 0;
}
使用vector 删除元素;
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int a[10]={1,22,113,24,25,36,437,18,9};
vector <int> v(a+1,a+7);
for(vector <int>::iterator i=v.begin();i != v.end();){
if(*i ==22)
i=v.erase(i);
else
++i;
}
for(vector <int>::iterator t = v.begin();t != v.end();++t)
cout<<*t<<" ";
return 0;
}
参考:http://m.blog.csdn.net/blog/szu030606/8565318