map,vector,string
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


更多推荐


所有评论(0)