STL 演算法 常見演算法(二)

2021-07-10 02:18:29 字數 720 閱讀 1908

stl::演算法::常見演算法

這兩組函式提供的實現刪除序列中的相關元素的思路,對我們實現自己的演算法是有幫助的。

這四個函式所在的標頭檔案仍然是#include

尤其需要注意的是,這四個函式雖然函式名都有remove,但均沒有移除容器元素的動作,也即至少均不改變容器的大小,更有甚者 remove_copy/remove_copy_if 甚至不會對原容器做任何改變。

remove/remove_if 更像是一種對序列的重新整理,將殘餘元素置於序列的尾部,返回指向第乙個殘餘元素的迭代器,故只需將remove/remove_if函式與容器的erase()成員函式相結合時,才會真正刪除容器中等於某值(remove)或符合某一條件(remove_if)的元素。最後我們會給出乙個刪除容器中所有偶數的操作。

templateforwarditerator remove_if(forwarditerator first, forwarditerator last, pred pred)

std::vector

v = ;

v.erase(std::remove_if(v.begin(), v.end(), [=](int x)), v.end());

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

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

STL演算法的應用(二)

2.存放臨時資料 在演算法設計有時需要存放一些臨時資料,通常的情況是,如果後存入的元素先處理,可以使用 棧 stack容器 後進先出 如果現先存入的元素先處理,可以使用queue 佇列 容器,如果元素的處理順序按照某個優先順序進行,可以使用priority queue容器。例.設計乙個演算法,判斷乙...

常見演算法整理(二)

1 從300萬字串中找到最熱門的10條 搜尋的輸入資訊是乙個字串,統計300萬輸入資訊中的最熱門的前10條,我們每次輸入的乙個字串為不超過255byte,記憶體使用只有1g。請描述思想,寫出演算法 c語言 空間和時間複雜度。255位元組 300萬 7,5500,0000位元組 755,000k 75...