第三章 字符串、向量和数组

文章目录


前言

C++primer第五版第三章的学习记录


一、命名空间的using声明

using std::cin;
using namespace std;

可以单独针对某个函数使用,也可以直接将某个命名空间直接导入。
不要将using声明放到头文件中!,因为头文件的内容会被拷入到所有引用该头文件的文件中去,可能造成命名冲突,切记。

二、标准库类型string

在C++中,存在字符串类型,需要引入头文件string,命名空间std::string;

#include <string>
using std::string;

2.1 关于string.size()

.size()的返回值是一个string::size_type类型的数,该数是一个无符号数,不要与有符号数进行比较,否则无符号数转为有符号数可能为负数,比较结果不正确。

2.2关于加法

由于字符和字面值常量都可以转化为string类型,所以可以将string类型和字面值常量相加

string s1 =  "hello";
string s2 = s1 + " world"; 
string s3 = "hello" + "," + s1;//错误
string s4 = "hello" + ("," + s1);//正确

但是字面值常量本身是不能相加的,因此需要注意运算顺序(s3、s4的例子)。

2.2关于部分访问与改变

可以通过for(auto c : string)实现,但需注意的时,若需要改变原字符串,需要使用引用类型,这一点与使用函数的指针做形参类似。
也可以通过下标访问。

2.2与字面值常量、C中字符数组的区别

字面值常量不仅含有可见字符,最后还含有一个空字符
C中字符数组如果要达到字符串效果,同样需要含有空字符
但是string类型则不同,并不含有空字符,而且长度可变

三、标准库类型vector

四、迭代器

五、数组和多维数组


总结

第三章的内容相对比较熟悉了,主要是与C的一个对比联系

上一篇:element 表格组件 实现单独编辑单元格


下一篇:JAVA集合知识点详解