欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++?list容器merge算法的使用以及注意事項(xiàng)

 更新時(shí)間:2024年04月24日 08:40:41   作者:Never?mind  
這篇文章主要介紹了C++?list容器merge算法的使用以及注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

list容器merge算法的使用注意事項(xiàng)

C++的list容器merge算法有多種形式,這里僅討論一下兩種:

可以看到

(1) void merge(list &x)

該算法將一個(gè)有序list容器加入另一個(gè)有序list容器中,且兩個(gè)list容器必須為逆序或順序,這是很容易不注意導(dǎo)致報(bào)錯(cuò)的主要原因。

list lst1{ 111,222,333,444 };//順序
list lst2{ 2411,4,3,2,1 };//逆序
lst1.merge(lst2);
for (auto beg = lst1.begin(); beg != lst1.end(); ++beg)
cout << *beg << " ";
cout << endl;

該代碼由于list順序不一致執(zhí)行將導(dǎo)致程序出錯(cuò)

將lst2改為順序后可正常輸出。

(2) void merge(lst2,comp)

該算法可以自定義比較類型,需要一個(gè)能返回bool型的predict。 

bool mycomparison (double first, double second)
{ return ( int(first)<int(second) ); }

int main ()
{
std::list first, second;

first.push_back (3.1);
first.push_back (2.2);
first.push_back (2.9);

second.push_back (3.7);
second.push_back (7.1);
second.push_back (1.4);

first.sort();
second.sort();

first.merge(second);

//使用merge后插入的list都為空

second.push_back (2.1);

first.merge(second,mycomparison);

std::cout << “first contains:”;
for (std::list::iterator it=first.begin(); it!=first.end(); ++it)
std::cout << ' ' << *it;
std::cout << ‘\n';

return 0;
}

需要注意的是:

  • merge默認(rèn)是使用<運(yùn)算符
  • 如果通過pred修改為使用>運(yùn)算符時(shí)
  • 相應(yīng)的兩個(gè)list容器中的元素也應(yīng)該是按照從大到小的順序排列
  • 否則會(huì)觸發(fā)錯(cuò)誤

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • C++最優(yōu)二叉樹哈夫曼樹算法解析

    C++最優(yōu)二叉樹哈夫曼樹算法解析

    這篇文章主要介紹了C++最優(yōu)二叉樹哈夫曼樹算法解析,哈夫曼樹又稱最優(yōu)二叉樹,是一種帶權(quán)路徑長度最短的二叉樹,所謂樹的帶權(quán)路徑長度,就是樹中所有的葉結(jié)點(diǎn)的權(quán)值乘上其到根結(jié)點(diǎn)的路徑長度,需要的朋友可以參考下
    2023-08-08
  • C語言細(xì)致講解線程同步的集中方式

    C語言細(xì)致講解線程同步的集中方式

    多線程中的線程同步可以使用,CreateThread,CreateMutex 互斥鎖實(shí)現(xiàn)線程同步,通過臨界區(qū)實(shí)現(xiàn)線程同步,Semaphore 基于信號實(shí)現(xiàn)線程同步,CreateEvent 事件對象的同步,以及線程函數(shù)傳遞單一參數(shù)與多個(gè)參數(shù)的實(shí)現(xiàn)方式
    2022-05-05
  • 深入理解C++中常見的關(guān)鍵字含義

    深入理解C++中常見的關(guān)鍵字含義

    本篇文章是對C++中常見關(guān)鍵字的含義進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實(shí)現(xiàn)共享單車管理系統(tǒng)

    C語言實(shí)現(xiàn)共享單車管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)共享單車管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C 語言常用方法技巧

    C 語言常用方法技巧

    本文主要介紹了C語言常用方法技巧。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • C語言入門篇--字符串的基本理論及應(yīng)用

    C語言入門篇--字符串的基本理論及應(yīng)用

    本篇文章是c語言基礎(chǔ)篇,主要為大家介紹了C語言中字符串的基本理論及應(yīng)用,希望可以幫助大家快速入門c語言的世界,更好的理解c語言
    2021-08-08
  • 探討:C++實(shí)現(xiàn)鏈?zhǔn)蕉鏄?用非遞歸方式先序,中序,后序遍歷二叉樹)

    探討:C++實(shí)現(xiàn)鏈?zhǔn)蕉鏄?用非遞歸方式先序,中序,后序遍歷二叉樹)

    本篇文章是對用C++實(shí)現(xiàn)鏈?zhǔn)蕉鏄?用非遞歸方式先序,中序,后序遍歷二叉樹)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例

    C語言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例

    這篇文章主要介紹了C語言中棧和隊(duì)列實(shí)現(xiàn)表達(dá)式求值的實(shí)例的相關(guān)資料,這里主要是對數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的理解和應(yīng)用,需要的朋友可以參考下
    2017-08-08
  • C語言進(jìn)階可變參數(shù)列表

    C語言進(jìn)階可變參數(shù)列表

    這篇文章主要為大家介紹了C語言進(jìn)階可變參數(shù)列表的示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • C++模板的特化超詳細(xì)精講

    C++模板的特化超詳細(xì)精講

    最近我學(xué)習(xí)了C++中的模板相關(guān)知識,模板是泛型編程的基礎(chǔ),十分重要。所以特意整理出來一篇文章供我們一起復(fù)習(xí)和學(xué)習(xí)
    2022-08-08

最新評論