演算法簡介:
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...