C++ vector使用範例 ----轉 (foreverhehe716自己再加點)

C++中的vector使用範例 ----轉 
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;

}
 
 從txt文件中把一堆數據讀入一個256*2的二維vector中。(data1.txt 中的數據爲256個點的二維座標:x1 y1 x2 y2 ...

 int _tmain(int argc, char** argv )
{
     vector< vector<double> > ivec(256, vector<double>(0));

     cout<<"請輸入要讀取的文件名:"<<endl;
     string fileName;
     cin>>fileName;
     ifstream inFile(fileName.c_str());
     if(!inFile)
     {
           cout<<"文件讀取錯誤!"<<endl;
           return -1;
      }
     double i;
     while(inFile)
     {
           for(int j=0;j<256;j++)
           {
                 for(int k=0;k<2;k++)
                {
                      inFile>>i;
                      ivec[j].push_back(i);
                }
           }
     }
     inFile.close();
     cout<<"數據讀取結果:"<<endl;

     for(int j=0;j<256;j++)
     {
          for(int i=0;i<2;i++)
          {
              cout<<ivec[j][i]<<" ";
           }
      }
      cout<<"ok!"<<endl;
      return 0;



 
 

發佈了20 篇原創文章 · 獲贊 7 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章