讀書筆記–演算法之變動性演算法

來源:互聯網
上載者:User

複製元素:

copy(begin,end,destbegin);

copy_backward(sourcebegin,source end,destend);

將區間的元素複製到destbegin/destend裡面去

copy正向,copy_backward反向

STL沒有copy_if(),只有remove_copy_if().

注意目的地區域的空間




代碼

轉換和結合:
transform(sourcebegin,sourceend,destbeg,destend,op);

針對區間的每一個元素調用op(elem),然後寫到destbeg裡面去

transform(sourcebegin,sourceend,soucrce2beg,destbeg,op);

針對sourcebegin,sourceend以及source2beg的元素調用op(sourceelem,source2elem);並將結果寫入destbeg裡面

注意:以上兩個都返回最後一個被轉換元素的下一個位置,並且要保證destbeg源區有足夠的大小

 

 

 


swap_range(beg1,end1,beg2);

將區間beg1,end1內的元素從beg2開始的對應元素對掉

 

代碼

賦值:
fill(begin,end,newValue);
fill_n(begin,n,newValue);

fill將區間的每一個元素賦予newValue;
fill_n將begin開始的前n個元素賦予newvalue


generate(begin,end,op);
generate_n(begin,num,op);

generate調用op返回的值,並賦予begin,end內的元素
generate_n嗲用op傳回值,並賦予begin前的元素

 

代碼

替換元素:
replace(beg,end,old value,newvalue);
replace(beg,end,op,newvalue);


replace_copy(sourcebeg,sourceend,destbeg,oldvalue,newvalue);
replace_copy_if(sourcebeg,sourceend,destbeg,op,newvalue);

將source複製到dest,同時將oldvalue替換成newvalue

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.