1 、find
1.1 按元素查詢
2.2 提供查詢迭代器區間與查詢元素 返回迭代器
2、find_if
2.1 按條件查詢
2.2 查詢區間(迭代器) 查詢條件(一元謂詞,若為二元需繫結)
2.3 返回迭代器
2.4 若為自定義資料型別 需要過載判斷條件
3、count
3.1 按元素統計
3.2 統計區間(迭代器) 元素
3.3 返回int型別 統計結果
4、count_if
4.1 按條件統計
4.2 統計區間(迭代器) 條件(謂詞)
4.3 返回int型別
4.4 若為自定義資料型別 需要過載==
5、binary_search 二分查詢法
5.1 查詢區間迭代器 查詢元素
5.2 返回值為bool型別 表示找到或未找到
5.3 不能在無序序列中使用
6、adjacent_find
6.1 查詢相鄰重複元素
6.2 只需提供查詢區間
6.3 返回值為迭代器 表示相鄰元素的第乙個位置的迭代器
7、測試程式
#include"pch.h"
#include#include#include#include#includeusing namespace std;
//find 查詢區間迭代器 查詢元素 返回查詢元素位置
void test01()
//查詢有沒有5這個元素
vector::iterator it = find(v1.begin(), v1.end(), 5);
if (it != v1.end())
else }
//查詢自定義資料型別
//過載==
class person
bool operator==(const person&p) };
void test02()
else }
//find_if
class mycompareperson:public binary_function
};void test03()
else }
//adjacent_find 查詢相鄰重複的元素
//返回相鄰元素的第乙個位置的迭代器
void test04()
else }
//binary_search二分查詢法 在無序序列中不可使用
//返回值bool型別
void test05()
//查詢序列中是否有9
bool ret=binary_search(v5.begin(), v5.end(), 9);
if (ret)
else }
//count count_if 按值或條件進行統計
class mycompare6
};void test06()
//按值進行統計
int num = count(v6.begin(), v6.end(), 9);
cout << "9的個數為:" << num << endl;
//按條件進行統計
num=count_if(v6.begin(), v6.end(), mycompare6());
cout << "大於4的個數為:" << num << endl;
}int main()
STL學習3常用演算法3 8常用集合演算法
1 set intersection 求兩個集合的交集 2 set union 求兩個容器的並集 3 set difference 求兩個集合的差集 4 兩集合必須是有序序列 5 返回結果最後乙個元素的迭代器位置 6 標頭檔案 include 7 測試程式 include pch.h include...
STL學習3常用演算法3 6常用拷貝替換演算法
1 copy複製 1.1 將容器中指定範圍的元素拷貝到另一容器中 1.2 目標容器要有容量 2 replace按值替換 2.1 將區間內指定的舊元素替換為新元素 3 replace if 按條件替換 3.1 將區間中符合條件的舊元素替換為新元素 4 swap 交換 4.1 交換兩個容器中的所有元素 ...
STL學習3常用演算法3 7常用算數生成演算法
1 標頭檔案 include 2 accumulate 2.1 計算容器元素累計總和 2.2 第三個引數是起始累加的值 3 fill 3.1 填充演算法 4 測試程式 include pch.h include include include accumulate includeusing name...