1.vector容器类可以存放任何类型的对象,vector类的定义与初始化:
vector<string> v1;//创建容器,其对象类型为string类
vector<string> v2(10);//创建有10个具有初使值为string对象的容器
vector<string> v3(5,"hello");//创建有5个值为“hello”的string类的对象容器
vector<string> v4(v3.begin(),v3.end());//v4与v3相同的容器(完全复制)
2.例子:vector添加元素和输出元素,如数组
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main(void)
{
int i=0;
vector<int> v;
for(i=0;i<10;i++)
{
v.push_back(i);//v.push_back()把元素一个一个放到vector中
}
for(i=0;i<v.size();i++)//v.size()表示vector存入元素的个数
{
printf("%d\n",v[i]);
printf("%d\n",v.at(i));
}
//注:可以用迭代v.begin和v.end来得到vector开始和借宿的元素地址的指针位置。
vector<int>::iterator iter; //iterator 抽象指针的大部分特征
for(iter=v.begin();iter!=v.end();iter++)
{
printf("%d\n",*iter);
}
return 0;
}
其中用到的vector容器类的几个成员函数
void push_back(const T & x ) //像容器末尾添加一个元素
size_type size( )const //返回容器元素的个数
迭代序列:iterator begin( ) iterator end( )
迭代器:迭代器代表容器的确定地址。。
定义一个行列都变化的数组
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main(void)
{
int i=0,j=0;
vector< vector<int> > Array;//先是一个存放vector<int>类型的大容器,内又是存放int类型的小容器,小容器中为int
vector<int> line;
for(j=0;j<10;j++)
{
line.push_back(j);
Array.push_back(line);//要对每一个vector初始化,否则不能存入元素
for(i=0;i<9;i++)
{
Array[i].push_back(i);
}
}
for(j=0;j<10;j++)
{
for(i=0;i<Array[j].size();i++){
cout<<Array[j].at(i)<<".";
}
cout<<endl;
}
return 0;
}
3.vector删除元素
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main(void)
{
vector<int> arr;
arr.push_back(6);
arr.push_back(8);
arr.push_back(3);
arr.push_back(8);
for(vector<int>::iterator it=arr.begin();it!=arr.end();)
{
if(*it==8)
{
it=arr.erase(it);//迭代删除指定元素
}
else
it++;
}
for(vector<int>::iterator it=arr.begin();it!=arr.end();it++)
{
cout<<*it<<",";
}
cout<<endl;
return 0;
}
vector<int>::iterator it;
iterator erase( it)删除指定元素