龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++中vector的用法实例解析(2)

时间:2014-08-21 02:32来源:网络整理 作者:网络 点击:
分享到:
1.vector 的数据的存入和输出: #includestdio.h#includevector#include iostreamusing namespace std;void main(){ int i = 0; vectorint v; for( i = 0; i 10; i++ ) { v.push_back( i );//把元素一个

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中
 }
  //对存入的数据清空
 for( i = 0; i < v.size(); i++ )//v.size() 表示vector存入元素的个数
 {
     cout << v[ i ] << " "; //把每个元素显示出来
 }
 cont << endl;
}

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

你也可以这样做:

vector<int>::iterator iter;
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;
}

希望本文所述实例对大家掌握C++中vector用法起到一定的帮助作用。

精彩图集

赞助商链接