C primer學習 泛型演算法 3

2021-07-05 16:00:39 字數 1141 閱讀 1994

auto f = (const

int &a, const

int &b) ;

cout

<< f(12, 13) << endl;

//for_each也是一種演算法,可以用for代替

void biggies(s &words, string::size_type sz)

);//按長度排序

//找到第乙個

auto wz = find_if(words.begin(), words.end(), [sz](const

string&s));

auto count = words.end() - wz;//j計算個數

cout

<< count << " words"

<< "of length "

<< sz <<" or longer"

<< endl;

for_each(wz, words.end(), (const

string &s));

cout

<< endl;

}

**//輸出單詞長度小於6的單詞(用bind())

bool lessthan_sz(const

string &s, int sz)

vector

words;

int sz = 6;

cout

<< count_if(words.cbegin(), words.cend(), bind(lessthan_sz, _1, sz));

練習:利用bind找到在乙個int的vector中查詢到第乙個大於strin長度的值.
bool check_size(const

int len, const

string &s)

vector

vec;

int sz = 6;

auto it = find_if(vec.cbegin(), vec.cend(), bind(check_size, _1,words[1]));

cout

<< *it << endl;

c primer學習筆記 初識泛型演算法

1概述 大多數演算法定義在標頭檔案algorithm中。一般情況下,這些演算法並不直接操作容器,而是遍歷迭代器指定的元素範圍。2迭代器使演算法不依賴於容器執行 雖然迭代器使用令演算法不依賴於容器型別,但大多數演算法都使用了乙個 或者多個 元素型別上的操作。關鍵在於 泛型演算法本身不會執行容器操作,只...

C Primer筆記 泛型演算法

地點 基地 泛型演算法並不直接操作容器,而是遍歷兩個迭代器指定的乙個元素範圍,如此將演算法是作用容器分離,實現通用性。泛型演算法多數定義在標頭檔案algorithm中。比如我們想在vector下找到乙個特定值,可實現如下 include include includeusing namespace ...

C primer筆記 泛型演算法

1 泛型演算法 演算法是因為其實現了一些經典演算法的公共介面,如排序和搜尋。泛型是因為他們可以作用於不同型別的元素和多種容器型別甚至是內建陣列。故稱泛型演算法 2 基本上都定義在algorithm和numeric兩個標頭檔案中,這些演算法遍歷由兩個迭代器指定的乙個元素範圍來進行操作,不對容器進行直接...