众所周知,STL有很多的存储容器,今天我们就来盘点一下那些常用的容器。
1 大小和容量函数 函数 size()和 length(),它们等效。Empty()用来检查字符串是否为空,或 s==””。
2 元素存取 string s ; //定义了一个类型为字符串的变量 s 我们可以使用下标操作符[]和函数 at()对字符串包含的字符进行访问。 如 s[3],访问字符串中的第 4 个字符(第一个字符的下标是 0) 但是应该注意的是操作符[]并不检查索引是否有效(有效索引 0~str.length()-1),如 果访问的下标越界,不会提示越界出错。而 at()会帮我们检查越界错误。
3 比较函数 字符串有大小之分,按英文字典的序区分大小,字符串间可以直接比较大小。C ++字 符串支持常见的比较操作符(>,>=,<,<=,==,!=)
4 更改内容 字符串变量间的赋值可以直接使用“=”。 String 有很多函数用于插入(insert)、删除(erase)、替换(replace)、添加字符。 先说增加字符(这里说的增加是在末尾上),命令有 +、append()、push_back()。 举例如下:s=s+ch; //字符串的拼接和添加内容,我们通常都使用“+”连接符。 s+=str; //加个字符串 s+=”my name is jiayp”; //加个 C 字符串 s+=’a’; //加个字符 要注意:字符串刚定义起来是空的,不能用 s[i] =’a’类似的赋值语句,因为第 i 都不存在。 字符串内容的拼接和添加我们基本都用“+”符号,string 还提供了 s.append(str) 和 s.push_back(‘a’) 进行内容的添加,如 s.append(“my name is jiayp”); s.append(5,’x’); //添加 5 个字母 x 需要在 string 中间的某个位置插入字符串,这时候你可以用 insert()函数,这个函数需要 你指定一个安插位置的索引,被插入的字符串将放在这个索引开始的后面。 s.insert(0,”my name”); //“my name”内容从 0 下标开始 s.insert(1,str); //str 内容从 1 下标开始 删除函数 erase(),替换函数 replace()。举例: string s=”il8n”; s.replace(1,2,”nternationalizatio”);//从索引 1 开始的 2 个替换成后面的字符串 s.erase(13);//从索引 13 开始往后全删除s.erase(7,5);//从索引 7 开始往后删 5 个
5 提取子串和字符串连接 提取子串的函数是:substr()。举例: s.substr(); //返回 s 的全部内容 s.substr(15);//从索引 5 开始的所有内容 s.substr(7,6); //从 7 开始连续 6 个字符
6 输入输出操作 1.>> 从输入流读取一个 string,“cin>>”读入时跳过前导空格,读到第一个空格为止。
7 C++字符串和 C 字符串的转换 由 C++字符串得到对应的 C_string 的方法是 c_str()和 copy(),其中 c_str()返回一 个以‘\0’结尾的字符数组,而 copy()则把字符串的内容复制或写入既有的 c_string 或字符 数组内。C++字符串并不以’\0’结尾。我的建议是在程序中能使用 C++字符串就使用,除 非万不得已不选用 c_string。C 字符串不能直接用+号连接,这是错的,s=”data”+a; 应当写成:s=”data”; s=s+a,s 是 string 类型,a 是 char 类型。
8.通过字符串流实现各种类型互转 通过使用库中的 stringstream 字符串流,把需要转换的信息输给它,然后从 中提取信息,可完成各种类型的互转。如: stringstream ss; int i; string s; ss>s; //可以把任意类似的内容输出给 ss ,然后输给任意 类型的变量,实现了各种类型间的转换。 但如果要在程序中用同一个流,每次需要用 ss.clear()清除状态信息 反复读写大量的数据,将会造成大量的内存消耗,因此有时候,需要适时地清除一下缓存 ( 用 ss.str("") )。
制作不易,请点一个不要钱的赞。
点赞破14514,光速更新下一集。