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容器的用法,希望對大家有所協助,假如大家有任何疑問請給我留言,會及時回復大家的。在此也十分感激大家對網站的支持!