您的位置:首页 > 其它

vector的简单用法

2017-05-15 20:44 267 查看
vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。vector成为容器,因为它可以包含其他对象。一个容器中的所有对象必须是同一种类型的。

每种容器都定义了自己的迭代器类型,如vector,vector::iterator iter;

用迭代器编写死循环

for(vector::iterator iter=ivec.begin();iter!=ivec.end();iter++)

{

*iter=0;

}

C++中的vector简单使用实例

首先是vector的声明:

#include <vector>
using namespace std; // 在这里声明
...
vector<int> i;
...
或者
#include <vector>
...
std::vector<int> i; // 在这里显式声明


看具体使用:

1.vector 的数据的存入和输出:

vector<CString> v;
for(int i =0;i<40;i++)
{
CString s;
s.Format("%d",i);
v.push_back(s);
}
CString ss ;
for(int j =0;j<v.size();j++)
{
ss+=v[j]+",";
}
MessageBox(ss);


注:你也可以用v.begin()和v.end() 来得到vector开始的和结束的元素地址的指针位置。你也可以这样做:

vector<CString> v;
for(int i =0;i<40;i++)
{
CString s;
s.Format("%d",i);
v.push_back(s);
}
CString ss ;
vector<CString>::iterator iter;
for( iter = v.begin(); iter != v.end(); iter++ )
{
ss+= *iter+",";
}
MessageBox(ss);
vector<CString> v;
for(int i =0;i<40;i++)
{
CString s;
s.Format("%d",i);
v.push_back(s);
}
CString ss ;
vector<CString>::iterator iter; //枚举器
for( iter = v.begin(); iter != v.end(); iter++ )
{
ss+= *iter+",";
}
MessageBox(ss);


2.对于二维vector的定义(开始就固定长度)

vector< vector<CString> >   Array( 10, vector<CString>(0) );
for( int j = 0; j < 10; j++ )
{
for (int i = 0; i < 9; i++ )
{
CString s;
s.Format("%d",i);
Array[ i ].push_back(s);
}
}
CString ss;
for( int jj = 0; jj < 10; jj++ )
{
for(int ii = 0; ii < Array[ jj ].size(); ii++ )
{
ss+=Array[jj][ii];
}
}
MessageBox(ss);
vector< vector<CString> > Array( 10, vector<CString>(0) );
for( int j = 0; j < 10; j++ )
{
for (int i = 0; i < 9; i++ )
{
CString s;
s.Format("%d",i);
Array[ i ].push_back(s);
}
}
CString ss;
for( int jj = 0; jj < 10; jj++ )
{
for(int ii = 0; ii < Array[ jj ].size(); ii++ )
{
ss+=Array[jj][ii];
}
}
MessageBox(ss);


3.定义一个行列都是变化的数组

int i = 0, j = 0;
vector< vector<CString> > Array;
vector< CString > line;
for( j = 0; j < 10; j++ )
{
Array.push_back( line );//要对每一个vector初始化,否则不能存入元
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: