欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vector的简单用法

程序员文章站 2022-07-14 12:30:20
...
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初始化,否则不能存入元