ForwardIterator1 search (ForwardIterator1 first1, ForwardI">

多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > STL algorithm算法search,search_n(52)

STL algorithm算法search,search_n(52)

來源:程序員人生   發布時間:2014-10-08 08:00:01 閱讀次數:2291次

search原型:

std::search

equality (1)
template <class ForwardIterator1, class ForwardIterator2> ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2);
predicate (2)
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);
該函數是查找[first2,last2)第一次出現在[first1,last1)中的位置。

也就相當于一個子序列在一個序列中第一次出現的位置。

若匹配成功,返回[first1,last1)中匹配的第一個相應元素。

否則,返回last1.

行為類似于:

template<class ForwardIterator1, class ForwardIterator2> ForwardIterator1 search ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2) { if (first2==last2) return first1; // specified in C++11 while (first1!=last1) { ForwardIterator1 it1 = first1; ForwardIterator2 it2 = first2; while (*it1==*it2) { // or: while (pred(*it1,*it2)) for version 2 ++it1; ++it2; if (it2==last2) return first1; if (it1==last1) return last1; } ++first1; } return last1; }

一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; void msearch(){ char vc[]={"iamastudentstuden"}; char vt[]={"student"}; auto it=search(vc,vc+17,vt,vt+7); cout<<"auto it=search(vc,vc+17,vt,vt+7);;"<<endl; for(auto i=it;i!=vc+17;++i) cout<<*i; cout<<endl; }
運行截圖:





search_n原型:

std::search_n

equality (1)
template <class ForwardIterator, class Size, class T> ForwardIterator search_n (ForwardIterator first, ForwardIterator last, Size count, const T& val);
predicate (2)
template <class ForwardIterator, class Size, class T, class BinaryPredicate> ForwardIterator search_n ( ForwardIterator first, ForwardIterator last, Size count, const T& val, BinaryPredicate pred );
該函數是查找序列中連續count個val值第一次出現的位置。

如果有,則返回第一次出現的首元素,否則返回last。

其行為類似于:

template<class ForwardIterator, class Size, class T> ForwardIterator search_n (ForwardIterator first, ForwardIterator last, Size count, const T& val) { ForwardIterator it, limit; Size i; limit=first; std::advance(limit,std::distance(first,last)-count); while (first!=limit) { it = first; i=0; while (*it==val) // or: while (pred(*it,val)) for the pred version { ++it; if (++i==count) return first; } ++first; } return last; }
一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; bool mypredicate (int i, int j) { return (i==j); } void msearchn(){ int myints[]={10,20,30,30,20,10,10,20}; std::vector<int> myvector (myints,myints+8); std::vector<int>::iterator it; // using default comparison: it = std::search_n (myvector.begin(), myvector.end(), 2, 30); if (it!=myvector.end()) std::cout << "two 30s found at position " << (it-myvector.begin()) << ' '; else std::cout << "match not found "; // using predicate comparison: it = std::search_n (myvector.begin(), myvector.end(), 2, 10, mypredicate); if (it!=myvector.end()) std::cout << "two 10s found at position " << int(it-myvector.begin()) << ' '; else std::cout << "match not found "; }
運行截圖:






――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

//寫的錯誤或者不好的地方請多多指導,可以在下面留言或者點擊左上方郵件地址給我發郵件,指出我的錯誤以及不足,以便我修改,更好的分享給大家,謝謝。

轉載請注明出處:http://blog.csdn.net/qq844352155

author:天下無雙

Email:coderguang@gmail.com

2014-9-26

于GDUT

――――――――――――――――――――――――――――――――――――――――――――――――――






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91精品国产99久久 | 亚洲日本欧美在线 | 亚洲国产天堂久久综合 | 亚洲三级色| 日本一区二区不卡久久入口 | 天堂在线视频观看 | 免费精品美女久久久久久久久久 | 久久久久国产一级毛片高清片 | 不卡的毛片 | 国产成人精品一区二区不卡 | 亚洲天堂视频在线播放 | 国产精品一区在线麻豆 | 曰本一区二区三区 | 激情综合亚洲欧美日韩 | 最近最新视频中文字幕4 | 久久久久国产免费 | 国产做人爱三级视频在线 | 日韩精品欧美高清区 | 亚洲欧美日韩综合一区 | 波多野结衣一区二区三区四区 | 免费视频网站在线看视频 | 性猛交xxxx乱大交孕妇 | 精品国产一区二区二三区在线观看 | 日本成年一区久久综合 | 国产精品久久久久久网站 | 国产精品亚洲欧美一级久久精品 | 亚洲夜夜骑 | 成人小视频在线 | 黑人又大又粗又长又深受不了 | 亚洲自拍第二页 | 一区视频在线播放 | 亚洲色图网址 | 亚洲高清二区 | 手机在线看福利 | 最近手机中文字幕大全8 | 久久精品成人一区二区三区 | 天堂俺去俺来也www久久婷婷 | 亚洲精品成人网久久久久久 | 欧美一级片网址 | 中文精品久久久久国产不卡 | 手机福利视频 |