在c++中,vector是一個十分有用的容器,
作用:它能夠像容器一樣存放各種型別的物件,簡單地說,vector是一個能夠存放任意型別的動態陣列,能夠增加和壓縮資料,
vector在C++標準模板庫中的部分內容,它是一個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫,
特別注意:
使用vector需要注意以下幾點:
1.加入頭檔案<vector>
2.如果你要表示的向量長度較長(需要為向量內部保存很多數),容易導致記憶體泄漏,而且效率會很低;
3.Vector作為函式的引數或者回傳值時,需要注意它的寫法:
double Distance(vector
一維vector
創建一維vector:
vector<int> nums; //不指定長度
vector<int> nums(n); //指定長度為n
添加元素
nums.push_back(1); //直接從陣列末端添加
nums[i]=1; //直接賦值給第i個位置
nums.insert(nums.begin()+i,a); //在第i+1個元素前插入a
洗掉元素
nums.resize(nums.size-i); //直接將陣列長度減少,某種意義上刪掉了后面i個
nums.pop_back(); //刪掉最后一個元素
nums.erase(nums.begin()+i); //刪掉第i+1個元素
nums.erase(nums.begin()+i,nums.end()+j); //洗掉區間[i,j-1],區間從0開始
nums.clear(); //清空
其它
獲取長度:nums.size();
排序(O(nlogn)):sort(nums.begin(),nums.end());
翻轉:reverse(nums.begin(),nums.end());
合并兩個vector:合并nums1和nums2,并將合并的陣列賦值給nums
vector<int> nums1(m),nums2(n);
vector<int> nums;
nums.resize(m+n);
merge(nums1.begin(),nums1.end(),nums2.begin(),nums2.end(),nums);
二維vector
創建M*n二維vector
vector< vector<int> > nums(m,vector<int>(n)); //m*n的二維vector
解釋:
定義了一個vector容器,元素型別為vector
vector
動態創建m*n的二維vector
方法一
vector<vector <int> > nums;3
nums.resize(m);
for(int i=0;i<m;i++) nums[i].resize(n);
方法二
vector<vector <int> > nums;
nums.resize(m,vector<int>(n));
初始化二維陣列
vector<vector <int> > nums(m ,vector<int>(n,0)); //m*n的二維vector,所有元素為0
獲得二維陣列的行數:nums.size();
獲得二維陣列的列數:nums[0].size();
陣列遍歷
int m = nums.size(),n = nums[0].size();
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
cout<<nums[i][j]<<endl;
}
}
用vector還可以用結構體型別喲
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8251.html
標籤:C++
上一篇:行程是如何請求到資源的?
