1、STL算法--find_if()
10年積累的做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有共青城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。(1)、代碼如下:
#include#include #include #include using namespace std; template class IsDiv{ public: IsDiv(const Type &divisor){ this->divisor = divisor; } bool operator()(Type &t){ return t%divisor == 0; } protected: private: Type divisor; }; int main(void){ vector v2; for(int i = 10; i < 33; i++){ v2.push_back(i); } int a = 4; IsDiv myDiv(a); //find_if(v2.begin(), v2.end(), myDiv); vector ::iterator it; it =find_if(v2.begin(), v2.end(), IsDiv (a) ); if(it == v2.end()){ cout<<"容器中沒(méi)有值是4的元素"< (2)、運(yùn)行結(jié)果:
2、STL算法--plus的使用
(1)、代碼如下:
#include#include #include #include using namespace std; //plus 預(yù)定義好的函數(shù)對(duì)象,能實(shí)現(xiàn)不同數(shù)據(jù) + 算法; //實(shí)現(xiàn)了數(shù)據(jù)類型和算法的分離======》通過(guò)函數(shù)對(duì)象技術(shù)實(shí)現(xiàn)的; // //思考,怎么知道plus 是2個(gè)參數(shù)------>多看看源碼; void main21(){ plus intAdd; int x = 10; int y = 20; int z = intAdd(x, y); cout<<"z:"< stringAdd; string s1 = "aaa"; string s2 = "bbb"; string s3 = stringAdd(s1, s2); cout<<"s3:"< v1; v1.push_back("bbb"); v1.push_back("aaa"); v1.push_back("ccc"); v1.push_back("zzz"); v1.push_back("ccc"); v1.push_back("ccc"); sort(v1.begin(), v1.end(), greater ()); //降序排列; vector ::iterator it; for(it = v1.begin(); it != v1.end(); it++){ cout<<*it< 有2個(gè)參數(shù),left參數(shù)來(lái)自容器,right參數(shù)來(lái)自sc, //bind2nd就是函數(shù)適配器:把預(yù)定義函數(shù)對(duì)象和第二個(gè)參數(shù)進(jìn)行綁定;` int num = count_if(v1.begin(), v1.end(), bind2nd(equal_to (), sc)); cout<<"num:"< (2)、運(yùn)行結(jié)果:
3、STL算法--for_each()
(1)、代碼如下:
#include#include #include #include using namespace std; void printV(vector &v){ vector ::iterator it; for(it = v.begin(); it != v.end(); it++){ cout<<*it<<" "; } cout< v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); printV(v1); //第三個(gè)參數(shù)是:函數(shù)對(duì)象/回掉函數(shù) //for_each(v1.begin(), v1.end(), showElem); //利用的是回調(diào)函數(shù) for_each(v1.begin(), v1.end(), MyShow()); //利用的是函數(shù)對(duì)象(這個(gè)類中重載了()) //函數(shù)的返回值是函數(shù)對(duì)象 cout< (2)、運(yùn)行結(jié)果:
4、for_each()和transform()的區(qū)別
(1)、代碼如下:
#include#include #include #include using namespace std; void showElem(int &n){ cout< v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); vector v2 = v1; for_each(v1.begin(), v1.end(), showElem); transform(v2.begin(), v2.end(), v2.begin(), showElem2);//transform對(duì)回調(diào)函數(shù)的要求;返回值必須有 cout< 運(yùn)行結(jié)果:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:find_if(),plus,for_each()的用法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://weahome.cn/article/eccse.html