C++中vector容器的用法。本站提示廣大學習愛好者:(C++中vector容器的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中vector容器的用法正文
在c++中,vector是一個非常有用的容器,上面對這個容器做一下總結。
1 根本操作
(1)頭文件#include<vector>.
(2)創立vector對象,vector<int> vec;
(3)尾部拔出數字:vec.push_back(a);
(4)運用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開端的。
(5)運用迭代器訪問元素.
vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
(6)拔出元素: vec.insert(vec.begin()+i,a);在第i+1個元素後面拔出a;
(7)刪除元素: vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開端
(8)向量大小:vec.size();
(9)清空:vec.clear();
2
vector的元素不只僅可以使int,double,string,還可以是構造體,但是要留意:構造體要定義為全局的,否則會出錯。上面是一段冗長的順序代碼:
#include<stdio.h> #include<algorithm> #include<vector> #include<iostream> using namespace std; typedef struct rect { int id; int length; int width; //關於向量元素是構造體的,可在構造體外部定義比擬函數,上面依照id,length,width升序排序。 bool operator< (const rect &a) const { if(id!=a.id) return id<a.id; else { if(length!=a.length) return length<a.length; else return width<a.width; } } }Rect; int main() { vector<Rect> vec; Rect rect; rect.id=1; rect.length=2; rect.width=3; vec.push_back(rect); vector<Rect>::iterator it=vec.begin(); cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl; return 0; }
3 算法
(1) 運用reverse將元素翻轉:需求頭文件#include<algorithm>
reverse(vec.begin(),vec.end());將元素翻轉(在vector中,假如一個函數中需求兩個迭代器,
普通後一個都不包括.)
(2)運用sort排序:需求頭文件#include<algorithm>,
sort(vec.begin(),vec.end());(默許是按升序陳列,即從小到大).
可以經過重寫排序比擬函數依照降序比擬,如下:
定義排序比擬函數:
bool Comp(const int &a,const int &b) { return a>b; }
調用時:sort(vec.begin(),vec.end(),Comp),這樣就降序排序。
以上所述是給大家引見的C++中 vector容器的用法,希望對大家有所協助,假如大家有任何疑問請給我留言,會及時回復大家的。在此也十分感激大家對網站的支持!