µÚ¶þÕ½éÉÜÄÚÖÃÀàÐÍ£¬±¾Õ½éÉܳéÏóÊý¾ÝÀàÐͿ⡣
- ÆäÖÐstringºÍvectorÊÇÁ½ÖÖ×îÖØÒªµÄ±ê×¼¿âÀàÐÍ£¬Ç°ÕßÖ§³Ö¿É±ä³¤×Ö·û´®£¬ºóÕß±íʾ¿É±ä³¤µÄ¼¯ºÏ¡£
- »¹ÓÐÒ»ÖÖ±ê×¼¿âÀàÐÍÊǵü´úÆ÷£¬ËüÊÇstringºÍvectorµÄÅäÌ×ÀàÐÍ£¬³£±»ÓÃÓÚ·ÃÎÊstringÖеÄ×Ö·ûºÍvectorÖеÄÔªËØ¡£
µÚÈýÕ ×Ö·û´®¡¢ÏòÁ¿ºÍÊý×é
Í·Îļþ²»Ó¦°üº¬usingÉùÃ÷¡£
±ê×¼¿âÀàÐÍstring
#include <string>
using std::string
³õʼ»¯string
Ö±½Ó³õʼ»¯£¨direct initialization£©
¿½±´³õʼ»¯£¨copy initialization£©£ºÊ¹ÓõȺÅ
string s1;
string s2(s1);
string s2 = s2;
string s3("hiya");
string s3 = "hiya";
string s4(10, 'c'); //s4µÄÄÚÈÝÊÇcccccccccc
string¶ÔÏóÉϵIJÙ×÷
1. cout << s
2. cin >> s //½«string¶ÔÏó¶ÁÈës£¬Óöµ½¿Õ°×Í£Ö¹
3. getline(is, s) //´ÓÊäÈëÁ÷isÖжÁȡһÐи³¸øs£¨»»Ðзû±»¶ÁÈ¡ÁË£¬µ«±»¶ªÆú¶øÃ»Óи³¸øs£©£¬·µ»Øis
4. s.empty() //sΪ¿Õ·µ»Øtrue£¬·ñÔò·µ»Øfalse
5. s.size()
6. s[n] //·µ»ØsÖеÚn¸ö×Ö·ûµÄÒýÓã¬Î»ÖÃn´Ó0¼ÆÆð
7. s1 + s2 //·µ»Øs1ºÍs2Á¬½ÓºóµÄ½á¹û
8. s1 = s2
9. s1 == s2
10. s1 != s2
11. <, <=, >, >=
Âß¼·ÇÔËËã·û£¨£¡£©
string::size_typeÀàÐÍ£ºs.size()µÄ·µ»ØÖµÀàÐÍ£¬ÊÇstringÀàµÄÅäÌ×ÀàÐÍ¡£ËüÊÇÒ»¸öÎÞ·ûºÅÀàÐ͵ÄÖµ£¬Äܹ»´æ·ÅÏÂÈκÎstring¶ÔÏóµÄ´óС¡£
´¦Àístring¶ÔÏóÖеÄ×Ö·û
cctypeÍ·Îļþ£º¶Ôµ¥¸ö×Ö·ûµÄÅжϻò´¦ÀíµÄº¯Êý
isupper(c) //cÊÇ´óд×ÖÄ¸Ê±ÎªÕæ
islower(c)
tolower(c) //Èç¹ûcÊÇ´óд×Öĸ£¬ÔòÊä³ö¶ÔÓÚµÄСд×Öĸ£»·ñÔòÔÑùÊä³ö
toupper(c)
isalpha(c) //cÊÇ×ÖÄ¸Ê±ÎªÕæ
isdigit(c) //cÊÇÊý×ÖÊ±ÎªÕæ
isalnum(c) //cÊÇ×Öĸ»òÊý×ÖÊ±ÎªÕæ
ispunct(c) //cÊDZêµã·ûºÅÊ±ÎªÕæ
isspace(c) //cÊǿհ×Ê±ÎªÕæ£¨¼´cÊǿոñ¡¢ºáÏòÖÆ±í·û¡¢×ÝÏòÖÆ±í·û¡¢»Ø³µ·û¡¢»»Ðзû¡¢½øÖ½·ûµÄÒ»ÖÖ£©
iscntrl(c) //cÊÇ¿ØÖÆ×Ö·ûÊ±ÎªÕæ
isgraph(c) //c²»Êǿոñµ«¿É´òÓ¡Ê±ÎªÕæ
isprint(c) //cÊǿɴòÓ¡×Ö·ûÊ±ÎªÕæ£¨¼´cÊǿոñ»ò¾ßÓпÉÊÓÐÎʽ£©
isxdigit(c) //Ê®Áù½øÖÆÊý
ʹÓÃC++°æ±¾µÄC±ê×¼¿âÍ·Îļþ£¬ÐÎÈçname.h£¬C++++ÖÐÕâЩÎļþÃüÃûΪcname£¬ÄÚÈÝÒ»Ñù£¬ÇÒÍ·ÎļþcnameÖж¨ÒåµÄÃû×Ö´ÓÊôÓÚÃüÃû¿Õ¼ästd¡£
·¶Î§for£¨range for£©Óï¾ä
for (declaration : expression)
statement
ÀýÈ磺
string str("some string");
//ÿÐÐÊä³östrÖеÄÒ»¸ö×Ö·û
for(auto c : str)
cout << c <<endl;
±ê×¼¿âÀàÐÍvector
vectorÊÇÒ»¸öÀàÄ£°å£¨class template£©¡£vector±íʾ¶ÔÏóµÄ¼¯ºÏ£¬ÆäÖÐËùÓжÔÏóµÄÀàÐͶ¼Ïàͬ¡£¼¯ºÏÖеÄÿ¸ö¶ÔÏó¶¼ÓÐÒ»¸öÓëÖ®¶ÔÓ¦µÄË÷Òý£¬Ë÷ÒýÓÃÓÚ·ÃÎʶÔÏó¡£vectorÒ²³£±»³ÆÎªÈÝÆ÷£¨container£©.
¶¨ÒåºÍ³õʼ»¯vector¶ÔÏó
vector<T> v1
vector<T> v2(v1)
vector<T> v2 = v1
vector<T> v3(n, val)
vector<T> v4(n)
vector<T> v5{a,b,c...}
vector<T> v5 = {a,b,c...}
Áбí³õʼ»¯vector¶ÔÏó
vector<string> articles = {"a", "an", "the"};
1
Ïòvector¶ÔÏóÖÐÌí¼ÓÔªËØ
push_back£º°ÑÒ»¸öÖµµ±³Évector¶ÔÏóµÄÎ²ÔªËØ“ѹµ½£¨push£©”vector¶ÔÏóµÄ“β¶Ë£¨back£©”¡£
vector<int> v2;
for(int i=0; i != 100; ++1)
v2.push_back(i);
ÔËÐÐʱ²ÅÖªµÀvector¶ÔÏóÖÐÈ·ÇеĸöÊý£º
string word;
vector<string> text;
while (cin >> word) {
text.push_back(word);
}
vector¶ÔÏóÄܸßЧÔö³¤£ºvectorÄÜÔÚÔËÐÐʱ¸ßЧ¿ìËÙµØÌí¼ÓÔªËØ¡£
Èç¹ûÑ»·ÌåÄÚ°üº¬ÓÐÏòvector¶ÔÏóÌí¼ÓÔªËØµÄÓï¾ä£¬Ôò²»ÄÜʹÓÃ++·¶Î§for++Ñ»·¡£
ÆäËûvector²Ù×÷
v.empty()
v.size()
v.push_back(t)
v[n] //·µ»ØvÖеÚn¸öλÖÃÉÏÔªËØµÄÒýÓÃ
v1 = v2
v1 = {a,b,c...}
v1 == v2
v1 != v2
<, <=, >, >=
µü´úÆ÷iterator
Ò»ÖÖͨÓûúÖÆ£ºÊµÏÖʹÓÃϱêÔËËã·û·ÃÎÊstring¶ÔÏóµÄ×Ö·û»òvector¶ÔÏóµÄÔªËØ¡£
ÀàËÆÖ¸ÕëÀàÐÍ£¬ÌṩÁ˶ԶÔÏóµÄ¼ä½Ó·ÃÎÊ¡£
beginºÍend³ÉÔ±
//ÓɱàÒëÆ÷¾ö¶¨b¡¢eµÄÀàÐÍ
//b±íʾvµÄµÚÒ»¸öÔªËØ£¬e±íʾvÎ²ÔªËØµÄÏÂÒ»¸öÔªËØ
auto b = v.begin(), e = v.end(); //b¡¢eÀàÐÍÏàͬ
end³ÉÔ±·µ»ØµÄµü´úÆ÷³£±»³Æ×÷βºóµü´úÆ÷£¨off-the-end iterator£©£¬»òÕß¼ò³ÆÎ²µü´úÆ÷¡£
Èç¹ûÈÝÆ÷Ϊ¿Õ£¬ÔòbeginºÍend·µ»ØµÄ¶¼ÊÇβºóµü´úÆ÷¡£
±ê×¼ÈÝÆ÷µü´úÆ÷ÔËËã·û
*iter ·µ»Øµü´úÆ÷iterËùÖ¸ÔªËØµÄÒýÓÃ
iter->men ½âÒýÓÃiter²¢»ñÈ¡¸ÆÔªËصÄÃûΪmemµÄ³ÉÔ±£¬µÈ¼ÛÓÚ£¨*iter£©.mem
++iter
--iter
iter1 == iter2
iter1 != iter2
//½«×Ö·û´®Ê××Öĸ¸Ä³É´óд
string s("some string");
if (s.begin() != s.end()) {
auto it = s.begin();
*it = toupper(*it);
}
//½«µü´úÆ÷´ÓÒ»¸öÔªËØÒÆ¶¯µ½ÁíÒ»¸öÔªËØ£¬°Ñ×Ö·û´®ÖеÚÒ»¸öµ¥´Ê¸ÄΪ´óд
//×¢Ò⣬ʹÓõÄÊÇ!=£¬¶ø²»ÊÇ<
for(auto it = s.begin(); it != s.end() && !isspace(*it); ++it)
*it = toupper(*it);
#### µü´úÆ÷ÀàÐÍ
ÓµÓеü´úÆ÷µÄ±ê×¼¿âʹÓÃiteratorºÍconst_iteratorÀ´±íʾµü´úÆ÷µÄÀàÐÍ£º
vector<int>::iterator it; //itÄܶÁдvector<int>ÖеÄÔªËØ
string::iterator it2; //it2ÄܶÁдstring¶ÔÏóÖеÄ×Ö·û
vector<int>::const_iterator it3; //it3Ö»ÄܶÁÔªËØ£¬²»ÄÜÐ´ÔªËØ
string::const_iterator it4; //it4Ö»ÄܶÁ×Ö·û£¬²»ÄÜд×Ö·û