1. map的用法
   map数组 好用的原因是,用几个写几个,不会有浪费空余的现象
   map<int, int> mp; //定义了一个名叫mp的map<int, int>容器

   第一个int:地址
   第二个int:信息

   mp[10001]=82, mp[10002]=80, mp[10003]=65; //只存储了3个
   if (mp.find(10003)==mp.end()) //如果mp中没有所查找的信息就会返回mp.end()
    cout <<“查无此人”<<endl; 
   else

   cout << mp[10003]<<end;

//xiaoming 85, xiaohong 65.
map < string, int > mp; //定义了一个名叫mp的map<int,int>容器。
mp["xiaoming"] = 85;
mp["xiaohong"] = 65;

map的遍历

① for(auto it : mp)
    cout << it.first << '  ' << it.second << endl; //注意mp的两个(地址和信息)。

输出:xiaohong 65 //这里,xiaohong在前是因为mp自动按first字典序从小到大排序。
           xiaoming 85

② 编译器 老,不能使用 auto,用迭代器遍历。

map<string, int> :: iterator it; //定义map<string,int>类型的迭代器it(指针)。
for(it = mp.begin(); it != mp.end(); it++) //mp.end()是mp最后一位的后位。
    cout << (*it).first << '  ' << (*it).second << endl;

2.字符串

1. reverse(s, s.begin(), s.end())  反转字符串  // asd → dsa

2. sort(s, s.begin(), s.end())     字符串排序  // asd → ads

3. tolower.  转化为小写
   toupper.  转化为大写

4. s1.push_back('a'); → s1 += 'a'.  尾部加入一个字符.

5. str.insert(s.begin() + i, 'a')  只能加字符(迭代器)
   str.insert(pos, "string")  在pos位置加入字符串

6. s1.erase(s1.begin() + 1).  删除某一个.
   s1.erase(1);  删除1, 包括1后所有值
   s1.erase(s1.begin(), s1.end());  删除区间值
   s1.erase(2, 2);  删除2后面2个位置

7. reverse(s.begin(), s.end());  转置字符串

    eg:字符串:"dog bird chicken bird cat "
8. if (s.find("chicken", 0) != -1)  查找字符串
   cout << s.find("chicken") << endl;  // 9
   cout << s.find('i', 6);  从下标6开始找"i", 返回下标.
 
9. string s2 = s1.substr(2, 5).  截取字符串长度  // 2,3,4,5,6

3.vector

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐