在順序容器中,沒有定義可以滿足使用者(程式設計師)所需的更多功能介面,所以標準庫定義了一組泛型演算法,之所以稱為「泛型的」,適用於不同型別。
泛型演算法一般不直接操作容器,而是遍歷迭代器的元素範圍來進行操作。
標準庫演算法find:
1 #include 2 #include 3 #include 45using
namespace
std;67
intmain()8;
13 auto result =find( vec.cbegin(), vec.cend(), val );
1415 cout << "
the value:
"<< val << ( result == vec.cend() ? "
is not pressent
" : "
is pressent
") <1617
return0;
18 }
10.1 節練習
1 #include 2 #include 3 #include 45using
namespace
std;67
intmain()8;
10int val = 5;11
12 cout << "
vec == 5 有:
"<1314
return0;
15 }
10.2 節練習
1 #include 2 #include 3 #include 4 #include 56using
namespace
std;78
intmain()9;
13string strval = "
xcd";14
15 cout <1617
return0;
18 }
關鍵概念:演算法永遠不會執行容器的操作
C Primer之泛型演算法lambda筆記
泛型演算法中有部分演算法除了第乙個和第二個引數接受迭代器型別來表示範圍外,它的第三個引數型別是乙個謂詞。謂詞是乙個可呼叫表示式,分為一元謂詞 只接受乙個引數 二元謂詞 接受兩個引數 比如說常用的sort演算法,它的第三個引數就是乙個二元謂詞。include include include inclu...
c primer之10 2 初識泛型演算法
標準庫提供了超過100個演算法,這些演算法都有一致的結構和類似的用法。除了少數例外,標準庫演算法都對乙個範圍內的元素進行操作。範圍分別用第乙個元素和尾元素之後位置的迭代器。理解演算法的最基本的方法就是了解他們是否讀取元素 改變元素或重排元素。10.2.1 唯讀演算法 有find和accumulate...
C Primer筆記 泛型演算法
地點 基地 泛型演算法並不直接操作容器,而是遍歷兩個迭代器指定的乙個元素範圍,如此將演算法是作用容器分離,實現通用性。泛型演算法多數定義在標頭檔案algorithm中。比如我們想在vector下找到乙個特定值,可實現如下 include include includeusing namespace ...