ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

C++primer£¨µÚÎå°æ£©µÚʮՠ·ºÐÍËã·¨(Ò»)
2015-07-20 17:24:15 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:4´Î
Tags£ºprimer µÚÎå Ëã·¨

·ºÐÍËã·¨µÄ¹Ø¼ü¸ÅÄ·ºÐÍËã·¨±¾Éí²»»áÖ´ÐÐÈÝÆ÷µÄ²Ù×÷£¬ËüÃÇÖ»»áÔËÐÐÓÚµü´úÆ÷Ö®ÉÏ£¬Ö´Ðеü´úÆ÷µÄ²Ù×÷¡£·ºÐÍËã·¨ÔËÐÐÓÚµü´úÆ÷Ö®É϶ø²»»áÖ´ÐÐÈÝÆ÷²Ù×÷µÄÌØÐÔ´øÀ´ÁËÒ»¸öÁîÈ˾ªÑȵ«·Ç³£±ØÒªµÄ±à³Ì¼Ù¶¨£ºËã·¨ÓÀÔ¶²»»á¸Ä±äµ×²ãÈÝÆ÷µÄ´óС¡£Ëã·¨¿ÉÄܸıäÈÝÆ÷Öб£´æµÄÔªËØµÄÖµ£¬Ò²¿ÉÄÜÔÚÈÝÆ÷ÒÆ¶¯ÔªËØ£¬µ«ÓÀÔ¶²»»áÖ±½ÓÌí¼Ó»òɾ³ýÔªËØ¡£

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

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºUVA 10566 && POJ 2507 C.. ÏÂһƪ£ºBZOJ 3879 SvT ºó׺Ê÷+ÐéÊ÷

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Spring Boot Java£º (2025-12-26 16:20:19)
¡¤Spring Boot¤ÇHello (2025-12-26 16:20:15)
¡¤Spring ¤Î»ù±¾¤«¤éŒ (2025-12-26 16:20:12)
¡¤C++Ä£°å (template) (2025-12-26 15:49:49)
¡¤C ÓïÑÔÖÐÄ£°åµÄ¼¸ÖÖ (2025-12-26 15:49:47)