在c++中,vector是乙個十分有用的容器,下面對這個容器做一下總結。
1 基本操作
(1)標頭檔案#include.
(2)建立vector物件,vectorvec;
(3)尾部插入數字:vec.
push_back(a);
(4)使用下標訪問元素,cout<< vec[0] <
0開始的。
(5)使用迭代器訪問元素.
vector::iterator it;for(it=vec.begin();it!=vec.end();it++)
cout
<<*it<(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#include
#include
#include
using
namespace
std;
typedef
struct
rect
3 演算法
(1) 使用reverse將元素翻**需要標頭檔案#include
reverse(vec.begin(),vec.end());將元素翻轉(在vector中,如果乙個函式中需要兩個迭代器,
一般後乙個都不包含.)
(2)使用sort排序:需要標頭檔案#include,
sort(vec.begin(),vec.end());(預設是按公升序排列,即從小到大).vec.begin()表示首位址
可以通過重寫排序比較函式按照降序比較,如下:
定義排序比較函式:
bool comp(const int &a,const int &b)
呼叫時:sort(vec.begin(),vec.end(),comp),這樣就降序排序。
C語言結構體和結構體排序
結構體 結構體是一種構造資料型別 構造資料型別包括 陣列型別 結構體型別 共用體型別 定義 把不同的資料組合成乙個整體。結構體的一般形式struct 結構體名稱 struct是關鍵字 不要忘記這裡的分號定義結構體的三種方法 第一種 先定義結構體型別,在定義變數名 struct student str...
結構體及結構體排序
1 定義的方法struct node 用strut定義乙個結構體,node是結構體的名字,可以自己瞎取。p 1000 這樣你就定義了乙個神奇的陣列!沒錯,它就是node型陣列!上面的 還在結構體的末尾定義了乙個該型的陣列,其實這個陣列不一定要有,而且也可以在主函式中定義,但是感覺上用的比較多,而且這...
結構體排序
description excel可以對一組紀錄按任意指定列排序。現請你編寫程式實現類似功能。input 測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數 n 100000 和 c,其中 n 是紀錄的條數,c 是指定排序的列號。以下有 n 行,每行包含一條學生紀錄。每條學生紀錄由學號 6位...