亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C++ > 正文

c++11新增的便利算法實(shí)例分析

2020-05-23 14:21:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了c++11新增的便利算法,主要有用于判斷、查找、數(shù)組、序列等的操作算法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
 
 

C++是一門應(yīng)用非常廣泛的程序設(shè)計(jì)語(yǔ)言,而c++11則新增加了一些便利的算法,這些新增的算法使我們的代碼寫起來(lái)更簡(jiǎn)潔方便,本文列舉一些常用的新增算法,算是做個(gè)總結(jié)分析,更多的新增算法讀者可以參考:http://en.cppreference.com/w/cpp/algorithm。

算法庫(kù)新增了三個(gè)用于判斷的算法all_of、any_of和none_of,定義如下:

template< class InputIt, class UnaryPredicate >bool all_of( InputIt first, InputIt last, UnaryPredicate p );template< class InputIt, class UnaryPredicate >bool any_of( InputIt first, InputIt last, UnaryPredicate p );template< class InputIt, class UnaryPredicate >bool none_of( InputIt first, InputIt last, UnaryPredicate p );

① all_of:檢查區(qū)間[first, last)中是否所有的元素都滿足一元判斷式p,所有的元素都滿足條件返回true,否則返回false。
② any_of:檢查區(qū)間[first, last)中是否至少有一個(gè)元素都滿足一元判斷式p,只要有一個(gè)元素滿足條件就返回true,否則返回true。
③ none_of:檢查區(qū)間[first, last)中是否所有的元素都不滿足一元判斷式p,所有的元素都不滿足條件返回true,否則返回false。

下面是這幾個(gè)算法的示例:

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){    vector<int> v = { 1, 3, 5, 7, 9 };   auto isEven = [](int i){return i % 2 != 0;    bool isallOdd = std::all_of(v.begin(), v.end(), isEven);    if (isallOdd)       cout << "all is odd" << endl;    bool isNoneEven = std::none_of(v.begin(), v.end(), isEven);    if (isNoneEven)       cout << "none is even" << endl;    vector<int> v1 = { 1, 3, 5, 7, 8, 9 };    bool anyof = std::any_of(v1.begin(), v1.end(), isEven);    if (anyof)       cout << "at least one is even" << endl;}

輸出:

all is odd
none is odd
at least one is even

算法庫(kù)的查找算法新增了一個(gè)find_if_not,它的含義和find_if是相反的,即查找不符合某個(gè)條件的元素,find_if也可以實(shí)現(xiàn)find_if_not的功能,只需要將判斷式改為否定的判斷式即可,現(xiàn)在新增了find_if_not之后,就不需要再寫否定的判斷式了,可讀性也變得更好。下面是它的基本用法:

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){  vector<int> v = { 1, 3, 5, 7, 9,4 };  auto isEven = [](int i){return i % 2 == 0;};  auto firstEven = std::find_if(v.begin(), v.end(), isEven);  if (firstEven!=v.end())       cout << "the first even is " <<* firstEven << endl;    //用find_if來(lái)查找奇數(shù)則需要重新寫一個(gè)否定含義的判斷式  auto isNotEven = [](int i){return i % 2 != 0;};  auto firstOdd = std::find_if(v.begin(), v.end(),isNotEven);    if (firstOdd!=v.end())       cout << "the first odd is " <<* firstOdd << endl;    //用find_if_not來(lái)查找奇數(shù)則無(wú)需新定義判斷式    auto odd = std::find_if_not(v.begin(), v.end(), isEven);    if (odd!=v.end())       cout << "the first odd is " <<* odd << endl;}

將輸出:

the first even is 4
the first odd is 1
the first odd is 1

可以看到使用find_if_not不需要再定義新的否定含義的判斷式了,更簡(jiǎn)便了。

算法庫(kù)還增加了一個(gè)copy_if算法,它相比原來(lái)的copy算法多了一個(gè)判斷式,用起來(lái)更方便了,下面是它的基本用法:

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){    vector<int> v = { 1, 3, 5, 7, 9, 4 };    std::vector<int> v1(v.size());    //根據(jù)條件拷貝    auto it = std::copy_if(v.begin(), v.end(), v1.begin(), [](int i){return i%2!=0;});    //縮減vector到合適大小    v1.resize(std::distance(v1.begin(),it));    for(int i : v1)    {       cout<<i<<" ";    }    cout<<endl;}  

算法庫(kù)新增了iota用來(lái)方便的生成有序序列,比如我們需要一個(gè)定長(zhǎng)數(shù)組,這個(gè)數(shù)組中的元素都是在某一個(gè)數(shù)值的基礎(chǔ)之上遞增的,那么用iota可以很方便的生成這個(gè)數(shù)組了。下面是它的基本用法:

#include <numeric>#include <array>#include <vector>#include <iostream>using namespace std; int main(){vector<int> v(4) ;//循環(huán)遍歷賦值來(lái)初始化數(shù)組//for(int i=1; i<=4; i++)//{//  v.push_back(i);//}//直接通過(guò)iota初始化數(shù)組,更簡(jiǎn)潔  std::iota(v.begin(), v.end(), 1);  for(auto n: v) {    cout << n << ' ';  }  cout << endl;    std::array<int, 4> array;  std::iota(array.begin(), array.end(), 1);  for(auto n: array) {    cout << n << ' ';  }  std::cout << endl;}

將輸出:

1 2 3 4
1 2 3 4

可以看到使用iota比遍歷賦值來(lái)初始化數(shù)組更簡(jiǎn)潔,需要注意的是iota初始化的序列需要指定大小,如果上面的代碼中:vector<int> v(4) ;沒(méi)有指定初始化大小為4的話,則輸出為空。

算法庫(kù)還新增了一個(gè)同時(shí)獲取最大值和最小值的算法minmax_element,這樣我們?nèi)绻氆@取最大值和最小值的時(shí)候就不用分別調(diào)用max_element和max_element算法了,用起來(lái)會(huì)更方便,minmax_element會(huì)將最小值和最大值的迭代器放到一個(gè)pair中返回,下面是它的基本用法:

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main() {  // your code goes here  vector<int> v = { 1, 2, 5, 7, 9, 4 };  auto result = minmax_element(v.begin(), v.end());    cout<<*result.first<<" "<<*result.second<<endl;  return 0;}

將輸出:

1 9

算法庫(kù)新增了is_ sorted和is_ sorted_until算法,is_sort用來(lái)判斷某個(gè)序列是否是排好序的,is_sort_until則用來(lái)返回序列中前面已經(jīng)排好序的部分序列。下面是它們的基本用法:

#include <iostream>#include <algorithm>#include <vector>using namespace std;int main() {  vector<int> v = { 1, 2, 5, 7, 9, 4 };  auto pos = is_sorted_until(v.begin(), v.end());    for(auto it=v.begin(); it!=pos; ++it)  {    cout<<*it<< " ";  }  cout<<endl;    bool is_sort = is_sorted(v.begin(), v.end());  cout<< is_sort<<endl;  return 0;}

將輸出:

1 2 5 7 9
0

總結(jié):這些新增的算法讓我們用起來(lái)更加簡(jiǎn)便,也增強(qiáng)了代碼的可讀性。

希望本文所述算法對(duì)大家更好的掌握C++11能有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品国产精品国产专区不卡| 男人日女人下面视频| 亚洲成人激情av| 精品制服美女久久| 免费a级片网站| 亚洲一区二区三区爽爽爽爽爽| 在线观看亚洲国产| 日日狠狠久久偷偷综合色| 国产女人18水真多毛片18精品| 国产精品自拍电影| 国产在线观看不卡一区二区三区| 欧美一级高清大全免费观看| 最近中文字幕在线观看| 午夜视频成人| 狠狠综合久久av一区二区老牛| 国产欧美日韩网站| 久久精品国产成人一区二区三区| 一区二区三区视频在线看| 好看的av在线不卡观看| 成人在线视频网址| 欧美高清你懂得| 中文字幕在线视频日韩| 日韩1区2区| 精品国产乱码久久久久软件| 久久精品国产一区二区三区日韩| 午夜影院免费体验区| 欧美资源一区| 精品国产一区二区三区麻豆免费观看完整版| 欧美黑人巨大videos精品| 国产亚洲精品7777| 99热国内精品永久免费观看| 91麻豆精品91久久久久同性| 久热精品在线播放| 午夜av一区二区三区| 亚洲精品国产精品国自产网站| 成人网ww555视频免费看| 亚洲丶国产丶欧美一区二区三区| 精品国产不卡| 一本加勒比北条麻妃| 北条麻妃在线一区| 欧美午夜精品久久久久久超碰| 99re成人精品视频| 波多野结衣片子| 日本aa大片在线播放免费看| 一区二区三区自拍视频| 久久精品一区二区三区四区五区| 国产在成人精品线拍偷自揄拍| 欧美综合久久久| 五月天激情小说综合| 亚洲一区三区视频在线观看| 国产一级片久久| 国产精品粉嫩| www.99久久热国产日韩欧美.com| 亚洲精品视频在线播放| 日韩三级免费看| 666av成人影院在线观看| 粉嫩av一区二区夜夜嗨| 欧美男体视频| 伊人国产精品| 被男同事摸的水好多| 久久精品国产亚洲a∨麻豆| 盗摄精品av一区二区三区| 999色成人| 久久男人av资源网站| 日本精品久久久久中文字幕| 日本一卡二卡四卡精品| 欧美成人三级在线播放| 8x8x8x视频在线观看| 蜜桃一级网站.| 午夜日本精品| 熟妇人妻系列aⅴ无码专区友真希| 国产精品麻豆va在线播放| 女生裸体视频一区二区三区| 26uuu精品一区二区三区四区在线| 亚洲一区在线免费观看| 婷婷色播视频| 国产欧美日本在线| 久久久亚洲欧洲日产国码aⅴ| 国产精品815.cc红桃| 日韩亚洲欧美在线| 久久wwww| 国产一区二区香蕉| 久久国产乱子伦精品| 欧美麻豆精品久久久久久| 麻豆视频观看网址久久| 国产欧美一区二区精品仙草咪| 任我爽在线视频精品一| 欧美大黑bbbbbbbbb在线| 在线黄色的网站| 亚洲国产精品激情在线观看| 午夜婷婷在线观看| 日本ー区在线视频| 激情视频免费观看在线| 免费无码国产v片在线观看| 美女扒开腿免费视频| 国产av无码专区亚洲av| 成人免费观看49www在线观看| 婷婷综合久久一区二区三区| 无码人妻久久一区二区三区不卡| 精品视频99| 国产传媒欧美日韩| 不卡av在线播放| 国产精品福利在线播放| koreanbj精品视频一区| 少妇又紧又色又爽又刺激视频| 久久综合久久鬼色中文字| 精品视频亚洲| 亚洲色大成网站www久久九九| 亚洲高清视频免费观看| 亚洲精品在线观看www| 国产欧美日韩精品在线观看| 深夜福利国产精品| www.1024| 中文在线最新版天堂8| 九九99九九精彩| 欧美色窝79yyyycom| jizzjizzjizz在线观看| 一区二区三区丝袜| 蜜乳av中文字幕| 欧美性受xxxx黑人xyx性爽| 亚洲跨种族黑人xxx| 亚洲狠狠婷婷综合久久久| 欧美特级xxxxbbbb毛片| 女女同性女同一区二区三区按摩| 免费在线观看黄色小视频| 永久www成人看片| 亚洲精品无码久久久久| 五月天中文字幕| 精品人妻一区二区三区三区四区| 一区二区三区视频免费看| 日韩精品中文字幕久久臀| 国产av熟女一区二区三区| 嫩草影院在线观看未满十八| 日韩av电影免费观看高清完整版| 日本伊人色综合网| 欧美人成在线| 欧美性受xxxx白人性爽| 国内精品二区| 91成人短视频| 久久亚洲国产成人| 希岛爱理一区二区三区av高清| 韩国成人在线视频| 亚洲国产精品va在线看黑人动漫| 久热精品在线视频| 污影院在线观看| 久操视频在线播放| 日本天码aⅴ片在线电影网站| 图片区小说区区亚洲五月| 毛片在线网站| 美女久久久久久| 中文幕av一区二区三区佐山爱| 四虎成人精品一区二区免费网站| www在线播放| 69国产精品| 国产777精品精品热热热一区二区| 手机看片福利永久| jizz中国免费| 欧美精品国产精品久久久| 91好吊色国产欧美日韩在线| 亚洲成人网在线播放| 国产成人午夜电影| 91麻豆精品国产无毒不卡在线观看| 福利视频一区| 六月丁香综合网| 国产精品成人一区二区网站软件| 在线观看国产v片| 九九热这里只有精品免费看| 羞羞视频网站在线免费观看| 日韩一区亚洲二区| 国产一区二区三区免费观看在线| 天天爽夜夜爽人人爽| 91精品推荐| 瑟瑟视频在线免费观看| 亚洲精品色午夜无码专区日韩| 免费观看在线黄色网| 久久久久久国产精品视频| 天堂成人免费av电影一区| 国产一区在线观看免费| www.99色| 天天干 夜夜操| 日韩电影一二三区| 九九热hot精品视频在线播放| 欧美狂野另类xxxxoooo| 亚洲国产精品久久精品怡红院| av毛片在线看| 国产精品资源在线观看| 中文字幕在线播放一区| 午夜激情电影在线播放| 久久国产在线观看| 天天成人综合网| 在线观看免费高清完整| 美女看a上一区| 亚洲成人网在线播放| 国内在线高清免费视频| 久久99精品久久久久久园产越南| 99久久精品免费看国产| 国产真实乱子伦精品视频| 中文字幕剧情在线观看| 国产亚洲欧洲高清| 中文字幕电影av| 日韩视频精品在线| 欧美日韩一区二区三区免费| 精品在线99| 精品人妻一区二区三区含羞草| 欧美一级特黄aaa| 国产成人亚洲欧洲在线| 国产xxxx孕妇| 日韩欧美亚洲日产国| 欧洲精品久久久久毛片完整版| 美腿丝袜一区二区三区| av资源在线免费观看| 麻豆app在线观看| 日韩va亚洲va欧洲va国产| 国内少妇毛片视频| 精品亚洲国产成av人片传媒| 图片区 小说区 区 亚洲五月| 国产欧美精品| h片在线播放| 亚洲 欧美 视频| 精品日产一区2区三区黄免费| 精品免费国产| 亚在线播放中文视频| 欧美成人黑人猛交| 亚洲日本视频在线| 亚洲经典中文字幕| www.国产一区| 青草久久伊人| 欧美午夜精品一区二区三区| 欧美日韩国产美女| 亚洲一区av| 亚洲国产一区二区三区在线播| 欧美日韩99| 日韩精品成人一区二区在线观看| 中文国语毛片高清视频| 国产成人在线小视频| 欧美中文字幕在线| 久久精品人人做人人爽97| 91九色国产蝌蚪| 国产精品成人一区二区三区电影毛片| 美女禁区视频免费观看精选| 悠悠资源网亚洲青| 91成人网在线观看| 日本一区二区在线| 久久久久久久久伊人| 国产欧美va欧美va香蕉在| 男女视频免费网站| 亚洲在线一区| 国产精品天天看天天狠| 日本在线一区| 久草中文在线| 黄色资源在线看| 日韩中文字幕一区| 日韩电视剧在线观看免费网站| 国产午夜精品一区二区三区| 久久影院视频免费| 亚洲福利视频二区| 欧美成人精品高清在线播放| 国产成人av电影| www三级免费| 男人天堂99| 免费国产黄线在线观看视频| 亚洲视频电影图片偷拍一区| 欧美性视频在线| 国产一级揄自揄精品视频| 日韩精品国产一区二区| 欧美最猛黑人xxxxwww| 精品人妻一区二区免费视频| www在线免费观看| 97色婷婷成人综合在线观看| 日韩福利视频在线观看| 日韩毛片高清在线播放| 亚洲人成在线影院| 欧美精品啪啪| 亚洲18私人小影院| 国产精品久久毛片av大全日韩| 日韩av一级| 亚洲六月丁香色婷婷综合久久| 欧美亚洲一区三区| 要久久爱电视剧全集完整观看| 中文字幕欧美日韩一区二区三区| 69av视频在线观看| 欧美一二三区在线| 国产精品二区一区二区aⅴ污介绍| 领导边摸边吃奶边做爽在线观看| 30一40一50老女人毛片| 欧美精品videossex变态| 欧美成人国产精品一区二区| 波多野洁衣一区| 国产免费一区二区| a一区二区三区| 国产精品久久久免费观看| 精精国产xxxx视频在线播放| 色偷偷亚洲女人天堂观看欧| 91骚色在线| 伊人久久亚洲美女图片| 国产精品一区而去| 亚洲福利小视频| 欧美亚洲国产日韩2020| av免费观看久久| 18岁以下禁止观看的美女视频| 粉嫩av一区二区三区粉嫩| 国产一区二区在线观看免费视频| 国内外成人激情视频| 九九视频精品在线观看| 国产精品成人一区二区艾草| 亚洲综合精品四区| 国产网友自拍视频| 水蜜桃一区二区三区| 热re91久久精品国99热蜜臀| 黄网站在线观看| 黄在线观看免费网站ktv| 亚洲欧洲三级电影| 91综合在线| 午夜精品小视频| 亚洲一区欧美在线| av一本久道久久综合久久鬼色| 欧美日韩亚洲国产精品| 国产欧美精品一二三| 激情成人四房播| 欧美视频国产视频| 香港伦理在线| 亚洲免费av一区二区| aaaa欧美| 黄网站免费在线| 成人区精品一区二区婷婷| 高清一区二区三区视频| 精品资源在线看| x88av蜜桃臀一区二区|