algorithm 不修改序列的操作

非修正序列算法

非修正序列算法不修改他們所作用的容器,例如計算元素個數(shù)和查找元素的函數(shù)。

函數(shù) 算法
adjacent_find(first, last) 搜索相鄰的重復(fù)元素
count(first, last, val) 計數(shù)
equal(first, last, first2) 判斷是否相等
find(first, last, val) 搜索
find_end(first, last, first2, last2) 搜索某個子序列的最后一次出現(xiàn)地點
find_first(first, last, first2, last2) 搜索某些元素的首次出現(xiàn)地點
for_each(first, last, func) 對 first 到 last 范圍內(nèi)的各個元素執(zhí)行函數(shù) func 定義的操作
mismatch(first, last, first2) 找出不吻合點
search(first, last, first2, last2) 搜索某個子序列


adjacent_find(first, last)

返回一個迭代器,指向第一對同值元素對的第一個元素。函數(shù)在迭代器 first 和 last 指明的范圍內(nèi)查找。此函數(shù)還有一個謂詞版本摄杂,其第 3 個實參是一個比較函數(shù)。

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

void Test_adjacent_find()
{
    multiset<int> int_set;
    int_set.insert(7);
    int_set.insert(5);
    int_set.insert(1);
    int_set.insert(5);
    int_set.insert(7);
    cout << "Set:";
    for (int item : int_set) cout << item << endl;

    cout << "第一次匹配 ";
    multiset<int>::iterator it = adjacent_find(int_set.begin(), int_set.end());
    if (it == int_set.end())
    {
        cout << "沒有相鄰的重復(fù)元素1" << endl;
        return;
    }
    cout << *it++ << ' ' << *it << endl;    // it++ 先打印第一個元素循榆,再更新迭代器

    cout << "第二次匹配 ";
    it = adjacent_find(it, int_set.end());
    if (it == int_set.end())
    {
        cout << "沒有相鄰的重復(fù)元素2" << endl;
        return;
    }
    cout << *it++ << ' ' << *it << endl;
}
Output
Set:1 5 5 7 7
第一次匹配 5 5
第二次匹配 7 7


count(first, last, val)

返回容器中值為 val 的元素個數(shù)析恢。函數(shù)在迭代器 first 和 last 指明的范圍內(nèi)查找。

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

void Test_count()
{
    multiset<int> int_set;
    int_set.insert(1);
    int_set.insert(5);
    int_set.insert(6);
    int_set.insert(2);
    int_set.insert(5);
    int_set.insert(3);
    int_set.insert(7);
    int_set.insert(5);
    cout << "Set:";
    for (int item : int_set) cout << item << endl;

    int num_count = count(int_set.begin(), int_set.end(), 5);
    cout << "元素5數(shù)量:" << num_count << endl;
}
Output
Set:1 2 3 5 5 5 6 7
元素5數(shù)量:3


for_each(first, last, func)

對 first 到 last 范圍內(nèi)的各個元素執(zhí)行函數(shù) func 定義的操作秧饮。

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

// 輸出函數(shù)
void Output(int val)
{
    cout << val << ' ';
}

void Test_for_each()
{
    set<int> int_set;
    int_set.insert(2);
    int_set.insert(3);
    int_set.insert(1);

    cout << "Set:";
    for_each(int_set.begin(), int_set.end(), Output);
    cout << endl;
}
Output
Set:1 2 3


相關(guān)參考

微軟文檔(algorithm)

cppreference(algorithm)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末映挂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盗尸,更是在濱河造成了極大的恐慌柑船,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泼各,死亡現(xiàn)場離奇詭異鞍时,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門逆巍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來及塘,“玉大人,你說我怎么就攤上這事锐极◇狭牛” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵灵再,是天一觀的道長味咳。 經(jīng)常有香客問我,道長檬嘀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任责嚷,我火速辦了婚禮鸳兽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘罕拂。我一直安慰自己揍异,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布爆班。 她就那樣靜靜地躺著衷掷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柿菩。 梳的紋絲不亂的頭發(fā)上戚嗅,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音枢舶,去河邊找鬼懦胞。 笑死,一個胖子當(dāng)著我的面吹牛凉泄,可吹牛的內(nèi)容都是我干的躏尉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼后众,長吁一口氣:“原來是場噩夢啊……” “哼胀糜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蒂誉,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤教藻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拗盒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怖竭,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年陡蝇,在試婚紗的時候發(fā)現(xiàn)自己被綠了痊臭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哮肚。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖广匙,靈堂內(nèi)的尸體忽然破棺而出允趟,到底是詐尸還是另有隱情,我是刑警寧澤鸦致,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布潮剪,位于F島的核電站,受9級特大地震影響分唾,放射性物質(zhì)發(fā)生泄漏抗碰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一绽乔、第九天 我趴在偏房一處隱蔽的房頂上張望弧蝇。 院中可真熱鬧,春花似錦折砸、人聲如沸看疗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽两芳。三九已至,卻和暖如春去枷,著一層夾襖步出監(jiān)牢的瞬間怖辆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工沉填, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留疗隶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓翼闹,卻偏偏與公主長得像斑鼻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猎荠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容