·ºÐÍËã·¨µÄ¹Ø¼ü¸ÅÄ·ºÐÍËã·¨±¾Éí²»»áÖ´ÐÐÈÝÆ÷µÄ²Ù×÷£¬ËüÃÇÖ»»áÔËÐÐÓÚµü´úÆ÷Ö®ÉÏ£¬Ö´Ðеü´úÆ÷µÄ²Ù×÷¡£·ºÐÍËã·¨ÔËÐÐÓÚµü´úÆ÷Ö®É϶ø²»»áÖ´ÐÐÈÝÆ÷²Ù×÷µÄÌØÐÔ´øÀ´ÁËÒ»¸öÁîÈ˾ªÑȵ«·Ç³£±ØÒªµÄ±à³Ì¼Ù¶¨£ºËã·¨ÓÀÔ¶²»»á¸Ä±äµ×²ãÈÝÆ÷µÄ´óС¡£Ëã·¨¿ÉÄܸıäÈÝÆ÷Öб£´æµÄÔªËØµÄÖµ£¬Ò²¿ÉÄÜÔÚÈÝÆ÷ÒÆ¶¯ÔªËØ£¬µ«ÓÀÔ¶²»»áÖ±½ÓÌí¼Ó»òɾ³ýÔªËØ¡£
1.³õʼ·ºÐÍËã·¨
1.1 Ö»¶ÁËã·¨
A.accumulateº¯Êý
Í·Îļþ£ºnumberic £» Ä¿µÄ£ºÇóºÍ£»ËüµÄÈý¸ö²ÎÊý£ºÇ°Á½¸öÇóºÍÔªËØµÄ·¶Î§£¬µÚÈý¸öÊDzÎÊýºÍµÄ³õʼֵ£»
Àý×Ó£º
vector
vec;
int sum=accumulate(vec.begin(),vec.end(),0);// ÇóvecÈÝÆ÷ÖÐÔªËØºÍ£»³õʼֵΪ0£»
string sum1=accumulate(v.begin(),v.end(),string()); //°ÑvectorÈÝÆ÷ÖеÄstringÔªËØ¶¼Á¬½ÓÆðÀ´£»
×¢Ò⣺µÚÈý¸ö²ÎÁ¿µÄÀàÐ;ö¶¨Á˺¯ÊýʹÓÃÄĸö¼Ó·¨ÔËËã·ûÒÔ¼°·µ»ØÖµµÄÀàÐÍ¡£
B. equalº¯Êý
Ä¿µÄ£ºÓÃÓÚÈ·¶¨Á½¸öÐòÁÐÊÇ·ñ±£´æÏàͬµÄÖµ¡£Ëü½«µÚÒ»¸öÐòÁÐÖеÄÿ¸öÔªËØÓëµÚ¶þ¸öÐòÁÐÖеÄÔªËØ½øÐбȽϡ£ËüµÄÈý¸ö²ÎÊý£ºÇ°Á½¸ö±íʾµÚÒ»¸öÐòÁеÄÔªËØ·¶Î§£¬µÚÈý¸ö±íʾµÚ¶þ¸öÐòÁеÄÊ×ÔªËØ¡£
Àý×Ó£º
equal(roster1.cbegin(),roster1.cend(),roster2.cbegin()); //roster1¿ÉÒÔÊÇvector
,¶øroster2ÊÇlist
¡£
1.2 дÈÝÆ÷µÄÔªËØËã·¨
A. fill_nº¯Êý
Ä¿µÄ£ºÖ¸¶¨µÄµü´úÆ÷ÔªËØ·¶Î§ÄÚ£¬½øÐи³Öµ£»ËüµÄÈý¸ö²ÎÊý£ºÒ»¸öµ¥µü´úÆ÷¡¢Ò»¸ö¼ÆÊýÖµºÍÒ»¸öÖµ¡£
Àý×Ó£º
vector
vec; //¿Õvector£»
fill_n(vec.begin(),v.end(),0); //½«ËùÓÐÔªËØÖØÖÃΪ0£»
fill_n(vec.begin(),10,0); //ÓÉÓÚvectorÈÝÆ÷ÖÐûÓÐÔªËØ£¬ÕâÌõÓï¾äµÄ½á¹ûÊÇ䶨ÒåµÄ¡£
B.back_inserterº¯Êý
Í·Îļþ£ºiterator £»Ä¿µÄ£º½ÓÊÜÒ»¸öÖ¸ÏòÈÝÆ÷µÄÒýÓ㬷µ»ØÒ»¸öÓë¸ÃÈÝÆ÷°ó¶¨µÄ²åÈëµü´úÆ÷¡£µ±ÎÒÃÇͨ¹ýÕâ¸öµü´úÆ÷¸³ÖµÊ±£¬»áµ÷ÓÃpush_back½«Ò»¸ö¸ø¶¨µÄÖµ²åÈëÈÝÆ÷ÖС£
C.¿½±´Ëã·¨
Ä¿µÄ£ºÊÇÁíÒ»¸öÏòÄ¿µÄλÖõü´úÆ÷Ö¸ÏòµÄÊä³öÐòÁÐÖÐÔªËØÐ´ÈëÊý¾ÝµÄËã·¨¡£ËüµÄÈý¸öµü´úÆ÷£ºÇ°Á½¸ö±íʾһ¸öÊäÈ뷶Χ£¬µÚÈý¸ö±íʾĿµÄÐòÁÐµÄÆðʼλÖá£
D.replaceº¯Êý
Ä¿µÄ£º½«ÈÝÆ÷Öеĸø¶¨ÔªËØÓÃÐÂÔªËØÌæ»»£»ËüµÄËĸö²ÎÊý£ºÇ°Á½¸öÊǵü´úÆ÷£¬µÚÈý¸ö±íʾËÑËØµÄÖµ£¨±»Ìæ»»£©£¬µÚËĸöÊÇÐÂÖµ£¨Ìæ»»µÄÖµ£©£»
Àý×Ó£º
replace(ilist.begin(),ilst.end(),0,42); //½«ÐòÁÐÖÐËùÓÐֵΪÁË0µÄÔªËØ¶¼¸ÄΪ42£»
1.3 ÖØÅÅÈÝÆ÷ÔªËØµÄËã·¨
A.sortº¯Êý
Ä¿µÄ£º°´×Öµä˳ÐòÅÅÐò£»ËüµÄ²ÎÊý£ºÖÁÉÙÐèҪǰºóÁ½¸öµü´úÆ÷µÄ·¶Î§£»
B.uniqueº¯Êý
Ä¿µÄ£ºÅÅÁÐÔÚ·¶Î§µÄǰ²¿£¬·µ»ØÖ¸Ïò²»Öظ´ÇøÓòÖ®ºóÒ»¸öλÖõĵü´úÆ÷¡£½«ÏàÁÚµÄÖØ¸´Ïɾ³ý£¬²¢·µ»ØÒ»¸öÖ¸Ïò²»Öظ´ÖµµÄ·¶Î§Ä©Î²µÄµü´úÆ÷¡£
Àý×Ó£º
#include
#include
#include
using namespace std;
void elimDups(vector
&word)
{
sort(word.begin(),word.end()); //°´×Öµä˳ÐòÅÅÐòword£¬ÒÔ±ã²éÕÒÖØ¸´µ¥´Ê£»
for(auto k:word) //´òÓ¡×ÖĸÅÅÐòµÄword£»
cout<
cout<
auto end_unique=unique(word.begin(),word.end()); //°ÑwordÖÐÏàͬµÄ´Êµ¥¸öµ¥´Ê˳ÐòµÄºóÃæ£»
word.erase(end_unique,word.end()); //ɾ³ýÖØ¸´µÄµ¥´Ê£»
}
int main()
{
vector
vec;
fill_n(back_inserter(vec),10,0); //²åÈëµü´úÆ÷back_inserter,»Øµ÷ÓÃpush_back£»
fill_n(vec.begin(),vec.size(),1); //fill_n(dest,n,val):½ÓÊÜÒ»¸öµü´úÆ÷¡¢¼ÆÊýÖµ¡¢Ò»¸öÖµ£»ÈÝÆ÷¸³ÖµÓï¾ä£»
for(auto c: vec)
cout<
cout<
int a1[]={0,1,2,3,4,5,6,7,8,9};
int a2[sizeof(a1)/sizeof(*a1)]; //±£´æa1Óëa2Êý×é´óСÏàͬ£»
auto ret=copy(begin(a1),end(a1),a2) ;//°Ña1µÄÄÚÈÝ¿½±´¸øa2£»
for(auto b:a2)
cout<
vector
vec1={the,quick,red,fox,jump,over,the,slow,red,turtle};
elimDups(vec1);
for(auto k:vec1)
cout<
cout<
return 0;
}
ÏÔʾ½á¹û£º

?
2.¶¨ÖƲÙ×÷
A.ν´Ê
ν´ÊÊÇÒ»¸ö¿Éµ÷Óõıí´ïʽ£¬Æä·µ»Ø½á¹ûÊÇÒ»¸öÄÜÓÃ×÷Ìõ¼þµÄÖµ¡£Î½´Ê·ÖΪ£ºÒ»ÔªÎ½´ÊºÍ¶þԪν´Ê¡£¼¸ÔªÎ½´Ê½ÓÊܼ¸Ôª²ÎÊý£»
B.lambdaº¯Êý
¿Éµ÷ÓöÔÏó¶¨Òå;¶ÔÓÚÒ»¸ö¶ÔÏó»òÒ»¸ö±í´ïʽ£¬Èç¹û¿ÉÒÔ¶ÔÆäʹÓõ÷ÓÃÔËËã·û£¬Ôò³ÆÎª¿Éµ÷Óõģ»¿Éµ÷ÓõĶÔÏóÓУºº¯Êý¡¢º¯ÊýÖ¸Õë¡¢ÖØÔØº¯Êýµ÷ÓÃÔËËã·ûµÄÀàºÍlambda±í´ïʽ¡£
lambda±í´ïʽÐÎʽ£º
[capture list](parameter list)->return type{function body};
capture listÊÇÒ»¸ölambdaËùÔÚº¯ÊýÖж¨ÒåµÄ¾Ö²¿±äÁ¿µÄÁÐ±í£¨Í¨³£Îª¿Õ£©£»
return type¡¢parameter listºÍfunction body·Ö±ð±íʾ·µ»ØÀàÐÍ¡¢²ÎÊýÁбíºÍº¯ÊýÌå¡£
µ÷ÓÃfind_if£º²éÕÒµÚÒ»¸ö³¤¶È´óÓÚµÈÓÚszµÄÔªËØ£»
auto wc=find_if(words.begin(),words.end(),[sz](const string &a){return a.size()>=sz;});
C.for_eachËã·¨
¸ÃËã·¨½ÓÊÜÒ»¸ö¿Éµ÷ÓöÔÏ󣬲¢¶ÔÊäÈëÐòÁÐÖÐÿ¸öÔªËØµ÷Óô˶ÔÏó£º
for_each(wc,words.end(),[](const string &s){cout<
cout<
×¢Ò⣺ΪÁËָʾ±àÒëÆ÷ÍÆ¶Ï²¶»ñÁÐ±í£¬Ó¦ÔÚ²¶»ñÁбíÖÐдһ¸ö&»ò=£»&¸æËß±àÒëÆ÷²ÉÓÃÒýÓ÷½Ê½£¬=Ôò±íʾ²ÉÓÃÖµ²¶»ñ·½Ê½¡£
3.²ÎÊý°ó¶¨
±ê×¼¿âbindº¯Êý
Í·Îļþ£ºfunctional £»Ëü½ÓÊÜÒ»¸ö¿Éµ÷ÓöÔÏó£¬Éú³ÉÒ»¸öеĿɵ÷ÓöÔÏóÀ´ÊÊÓ¦Ô¶ÔÏóµÄ²ÎÊýÁÐ±í¡£
µ÷ÓÃbindµÄÐÎʽ£º
auto newCallable=bind(callable, arg_list);
newCallable±¾ÉíÊÇÒ»¸ö¿Éµ÷ÓöÔÏó£¬arg_listÊÇÒ»¸ö¶ººÅ·Ö¸ôµÄ²ÎÊýÁÐ±í£¬¶ÔÓ¦¸ø¶¨µÄcallableµÄ²ÎÊý¡£arg_listÖеIJÎÊý¿ÉÄܰüº¬ÐÎÈç_nµÄÃû×Ö£¬_1ÊÇnewCallableµÄµÚÒ»¸ö²ÎÊý,_2ΪµÚ¶þ¸ö²ÎÊý£¬ÒÀ´ÎÀàÍÆ¡£
4.ÔÙ̽µü´úÆ÷
µü´úÆ÷ÓУº²åÈëµü´úÆ÷¡¢Á÷µü´úÆ÷¡¢·´Ïòµü´úÆ÷¡¢Òƶ¯µü´úÆ÷£»
4.1²åÈëµü´úÆ÷
²åÈëÆ÷£ºÊÇÒ»ÖÖµü´úÆ÷ÊÊÅäÆ÷£¬Ëü½ÓÊÜÒ»¸öÈÝÆ÷£¬Éú³ÉÒ»¸öµü´úÆ÷£¬ÄÜʵÏÖÏò¸ø¶¨ÈÝÆ÷Ìí¼ÓÔªËØ¡£
²åÈëµü´úÆ÷ÈýÖÖÀàÐÍ£ºback_inserter(µ÷ÓÃpus