posts - 27, comments - 14, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

C++中的vector使用范例(转)

Posted on 2009-09-17 14:21 heeeey 阅读(351) 评论(0)  编辑 收藏 引用 所属分类: STL

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

 

#include<stdio.h>
#include
<vector>
#include 
<iostream>

using namespace std;

void main()

{

   
int i = 0;

    vector
<int> v;

    
for( i = 0; i < 10; i++ )

   
{

             v.push_back( i );
//把元素一个一个存入到vector中

   }


    
/* v.clear()*/ 对存入的数据清空


   
for( i = 0; i < v.size(); i++ )//v.size() 表示vector存入元素的个数

   
{

          cout 
<< v[ i ] << "  "//把每个元素显示出来

   }


   cont 
<< endl;

}
 


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

 

vector<int>::iterator iter; /*iterator 抽象了指针的绝大部分基本特征*/


for( iter = v.begin(); iter != v.end(); iter++ ) 

{
    cout 
<< *iter << endl;
}



2. 对于二维vector的定义。

1)定义一个10个vector元素,并对每个vector符值1-10。

 

#include<stdio.h>
#include
<vector>
#include 
<iostream>

using namespace std;

void main()
{
 
int i = 0, j = 0;

//定义一个二维的动态数组,有10行,每一行是一个用一个vector存储这一行的数据。

//所以每一行的长度是可以变化的。之所以用到vector<int>(0)是对vector初始化,否则不能对vector存入元素。
 vector< vector<int> > Array( 10, vector<int>(0) ); 

for( j = 0; j < 10; j++ )
 
{
  
for ( i = 0; i < 9; i++ )
  
{
   Array[ j ].push_back( i );
  }

 }


 
for( j = 0; j < 10; j++ )
 
{
  
for( i = 0; i < Array[ j ].size(); i++ )
  
{
   cout 
<< Array[ j ][ i ] << "  ";
  }

  cout
<< endl;
 }

}



2)定义一个行列都是变化的数组。

#include<stdio.h>
#include
<vector>
#include 
<iostream>

using namespace std;

void main()
{
 
int i = 0, j = 0;

 vector
< vector<int> > Array;
 vector
< int > line;
 
for( j = 0; j < 10; j++ )
 
{
  Array.push_back( line );
//要对每一个vector初始化,否则不能存入元素。
  for ( i = 0; i < 9; i++ )
  
{
   Array[ j ].push_back( i );
  }

 }


 
for( j = 0; j < 10; j++ )
 
{
  
for( i = 0; i < Array[ j ].size(); i++ )
  
{
   cout 
<< Array[ j ][ i ] << "  ";
  }

  cout
<< endl;
 }

}


使用 vettor erase 指定元素

#include "iostream"
#include 
"vector"

using namespace std;

int   main()
{
    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;
        }

    }


    cout 
<< "After remove 8:\n";

    
for(vector<int>::iterator it = arr.begin(); it < arr.end(); ++it)
    
{
        cout 
<< * it << " ";
    }

    cout 
<< endl;

}


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理