STL 常用演算法(二)查詢演算法

2021-10-06 04:18:38 字數 2586 閱讀 2476

演算法簡介:

1 find

功能描述:

函式原型:

#include

#include

#include

void

test01()

//查詢容器中是否有 5 這個元素

vector<

int>

::iterator it =

find

(v.begin()

, v.

end(),

5);if

(it == v.

end())

else

}class

person

//過載==

bool

operator==(

const person& p)

return

false;}

public

: string m_name;

int m_age;};

void

test02()

else

}

總結: 利用find可以在容器中找指定的元素,返回值是迭代器

功能描述:

函式原型:

#include

#include

#include

//內建資料型別

class

greaterfive};

void

test01()

vector<

int>

::iterator it =

find_if

(v.begin()

, v.

end(),

greaterfive()

);if(it == v.

end())

else

}//自定義資料型別

class

person

public

: string m_name;

int m_age;};

class

greater20};

void

test02()

else

}int

main()

功能描述:

函式原型:

#include

#include

void

test01()

else

}

功能描述:

函式原型:

#include

#include

void

test01()

//二分查詢

bool ret =

binary_search

(v.begin()

, v.

end(),

2);if

(ret)

else

}int

main()

總結:**二分查詢法查詢效率很高,值得注意的是查詢的容器中元素必須的有序序列

功能描述:

函式原型:

#include

#include

//內建資料型別

void

test01()

//自定義資料型別

class

person

bool

operator==(

const person & p)

else

} string m_name;

int m_age;};

void

test02()

intmain()

總結:統計自定義資料型別時候,需要配合過載operator==

功能描述:

函式原型:

#include

#include

class

greater4};

//內建資料型別

void

test01()

//自定義資料型別

class

person

string m_name;

int m_age;};

class

ageless35};

void

test02()

intmain()

總結:按值統計用count,按條件統計用count_if

STL學習3常用演算法3 4常用查詢演算法

1 find 1.1 按元素查詢 2.2 提供查詢迭代器區間與查詢元素 返回迭代器 2 find if 2.1 按條件查詢 2.2 查詢區間 迭代器 查詢條件 一元謂詞,若為二元需繫結 2.3 返回迭代器 2.4 若為自定義資料型別 需要過載判斷條件 3 count 3.1 按元素統計 3.2 統計...

STL 查詢演算法

可以按是否需要排序區間分為兩組 a.count,find b.binary search,lower bound,upper bound,equal range a組不需排序區間,b組需要排序區間。當乙個區間被排序,優先選擇b組,因為他們提供對數時間的效率。而a則是線性時間。另外a組b組所依賴的查詢...

STL常用的查詢演算法 13

函式名 標頭檔案函式功能 adjacent find 在iterator對標識元素範圍內,查詢一對相鄰重複元素,找到則返回指向這對元素的第乙個元素的forwarditerator 否則返回last.過載版本使用輸入的二元操作符代替相等的判斷 函式原形 templatefwdit adjacent f...