C vector用法和結構體排序

2021-07-02 09:50:22 字數 1437 閱讀 5468

在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位...