1. 程式人生 > 其它 >vector容器用法(更新中)

vector容器用法(更新中)

1、概念
vector中文意思是向量,我們可以把vector當作一個動態陣列,並且能夠將它進行動態增刪等,它的作用其實和連結串列類似。

2、初始化
一共有5中初始化方法:

  1. vector<int> a(10); //定義了10個整型元素的向量(尖括號中為元素型別名,它可以是任何合法的資料型別),但沒有給出初值,其值是不確定的。
  2. vector<int> a(10,1); //定義了10個整型元素的向量,且給出每個元素的初值為1
  3. vector<int> a(b); //用b向量來建立a向量,整體複製性賦值
  4. vector<int> a(b.begin(),b.begin+3); //定義了a值為b中第0個到第2個(共3個)元素
  5. int b[7]={1,2,3,4,5,9,8};
    vector<int> a(b,b+7); //從陣列中獲得初值

3、排序
首先引入 #include <algorithm>
從小到大:sort(a.begin(),a.end());
從大到小:reverse(a.begin(),a.end());

4、訪問
第一種方法:直接陣列訪問
第二種方法:迭代器訪問,通過迭代器來遍歷或指向容器的元素(說明迭代器是一種指標)

5、二維陣列兩種定義方式
方法一:

#include <string.h>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main()
{
   int N=5, M=6; 
   vector<vector<int> > obj(N, vector<int>(M)); //定義二維動態陣列5行6列 

   for(int i=0; i< obj.size(); i++)//輸出二維動態陣列 
   {
       for(int j=0;j<obj[i].size();j++)
       {
           cout<<obj[i][j]<<" ";
       }
       cout<<"\n";
   }
   return 0;
}

方法二:

#include <string.h>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main()
{
   int N=5, M=6; 
   vector<vector<int> > obj(N); //定義二維動態陣列大小5行 
   for(int i =0; i< obj.size(); i++)//動態二維陣列為5行6列,值全為0 
   { 
       obj[i].resize(M); 
   } 

   for(int i=0; i< obj.size(); i++)//輸出二維動態陣列 
   {
       for(int j=0;j<obj[i].size();j++)
       {
           cout<<obj[i][j]<<" ";
       }
       cout<<"\n";
   }
   return 0;
}