1. 迭代器
string s1 = "Hello world";
cout << *s1.begin() <<' '<< *(s1.end()-1) << endl;
// *s1.begin() = 'H'; *(s1.end()-1) = 'd'
//s1.cbegin()与s1.cend() 指向的内容为const,不可修改
cout << *s1.rbegin() <<' '<< *(s1.rend()-1) << endl;
// *s1.rbegin() = 'd'; *(s1.rend()-1) = 'H'
//反转迭代器,但地址变化规则不同。rend()还是递减遍历
2. 访问
cout<<s1[1]<<' '<<s1.at[1]<<endl;
//s1[1]访问更快,s1.at[1]有边界检查,更安全
cout<<s1.front()<<' '<<s1.back()<<endl;
//s1.front() = 'H' s1.back() = 'd'
3. 大小
cout<<s1.size()<<' '<<s1.length()<<endl;
// 两者相同
4. 插入 insert()
string s2 = "ABCDEFG";
//s1.insert(1, s2); 此时 s1 = "HABCDEFGello world"
//s1.insert(1, s2, 2, 3); s1 = "HCDEello world"
//s1.insert(1, 4, 'd'); 插入4个字符 s1 = "Hddddello world"
//注意各类返回值的不同
5. 替换 replace()
删除字符 erase()