vector容器用法(更新中)
阿新 • • 發佈:2021-08-11
1、概念
vector中文意思是向量,我們可以把vector當作一個動態陣列,並且能夠將它進行動態增刪等,它的作用其實和連結串列類似。
2、初始化
一共有5中初始化方法:
vector<int> a(10); //定義了10個整型元素的向量(尖括號中為元素型別名,它可以是任何合法的資料型別),但沒有給出初值,其值是不確定的。
vector<int> a(10,1); //定義了10個整型元素的向量,且給出每個元素的初值為1
vector<int> a(b); //用b向量來建立a向量,整體複製性賦值
vector<int> a(b.begin(),b.begin+3); //定義了a值為b中第0個到第2個(共3個)元素
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; }