vector向量容器元素排序與查詢

2021-07-10 14:27:24 字數 1660 閱讀 6901

#include 

#include

vector

vec;

//比較函式,這裡的元素型別要與vector儲存的型別一致

bool compare(int a,int b)

std::sort(vec.begin(),vec.end(),compare);

注意:

sort()函式原型申明如下:

template

void sort (randomaccessiterator first, randomaccessiterator last);

template

void sort (randomaccessiterator first, randomaccessiterator last, compare comp);

若不自定義比較函式,預設是按照公升序排序。

vector

vec;

int a=10;

vector

::iterator it=find(vec.begin(),vector.end(),a);

find()原型:

template

inputiterator find (inputiterator first, inputiterator last, const t& val);

將構造型別,比如struct的物件儲存在vector中,查詢時,需要過載等於運算子(operator==),具體實現參考如下**。

struct element;

bool

operator==(const element& ele);

};//自定義比較函式

bool compare(const element& left,const element& right)

//過載輸出操作符<<,格式化輸出element

ostream& operator

<<(ostream& coutu,const element& ele)

int main(){

vector

vecele;

vecele.push_back(element(4,4));

vecele.push_back(element(1,1));

vecele.push_back(element(2,2));

vecele.push_back(element(3,3));

//sort

std::sort(vecele.begin(),vecele.end(),compare);

for(int i=0;icout

vector

::iterator it=find(vecele.begin(),vecele.end(),element(4,4));

cout

<<"found "

<<*it《程式輸出:

a:1,b:1

a:2,b:2

a:3,b:3

a:4,b:4

found a:4,b:4

[1]c++ reference std::sort.

[2]c++ reference std::find.

vector向量容器

vector容器是陣列的乙個泛化推廣,不僅可以像陣列那樣進行元素的隨機訪問,還可以在容器的尾端插入新元素,實現了random access container和back insertion sequence概念。vector具有自動的記憶體管理功能,對於元素的插入和刪除,能夠動態調整占用的記憶體空間...

Vector向量容器

vector向量容器優點 1 vector向量容器不但能像陣列一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單 高效的容器,完全可以取代陣列。2 vector向量容器具有記憶體自動管理的功能,對於元素的插入和刪除,可動態調整所佔的記憶體空間。3 對於vector容器的容量定義,可以事先定義乙個...

vector向量容器

vector向量容器 include include vector向量容器標頭檔案 include c語言標頭檔案 include 使用sort演算法 using namespace std bool comp int a,int b 自定義函式從大到小排序 int main cin x v.ins...