使用using在一条语句声明多个名字时,每个都要加using
初始化string对象的方式
拷贝字符串时不拷贝末尾的空字符
拷贝初始化:用等号初始化一个变量,其他都是直接初始化
string的操作如下
在读取string对象时会自动忽略开头的空白符,然后开始读取,直到遇到下一个空白符为止
用getline读取string时,会丢掉换行符,string中是不包含换行符的
string::size_type:无符号类型,足够放下任何string对象的大小,体现了标准库类型与机器无关的特性
字典顺序:前面字符全相同则短串小于长串,某些位置不相同,则为第一对相异字符的比较结果
string对象运算中,必须保证运算符两边的运算对象至少有一个是string
关于字符的函数
初始化vector对象
注意:提供的是元素初始值时,不能放在圆括号中
只提供元素的数量而不提供初始值时,会进行值初始化(内置类型)或默认初始化(类类型)
如果元素类型不支持默认初始化就必须提供初始值
只提供元素数量的时候不能使用拷贝初始化,只能使用直接初始化
列表初始化时,若提供的是数字,先判断是否与元素的类型相同,相同则元素为对应的提供值,不同则进行构造对应数量的元素进行默认初始化
范围for语句内不要改变其所遍历序列的大小
vector不能用下标形式添加元素
使用了迭代器的循环体内也不要向容器添加元素
数组的大小固定,维度是常量表达式,默认情况下数组的元素会被默认初始化
若是在函数内部定义一个元素是内置类型的数组,那么默认初始化会使其有未定义的值
定义数组的时候不允许使用auto
使用字符串字面值初始化数组会包含末尾的空字符
数组不允许拷贝和赋值,用来初始化vector时要用取数组的两个指针
不存在元素类型是引用的数组
auto一个数组得到的类型是指针
decltype一个数组得到的类型是数组
可以通过对数组尾后元素地址构造一个尾后指针,但超出尾后就会引发错误
比较两个不相关的指针,行为未定义
空指针只能与0进行加减运算
标准库类型限定使用的下标必须是无符号类型,而内置类型的下标运算符可以处理负值
C风格字符串的函数定义在cstring头文件中,传入这类函数的指针必须是空字符结束的数组(C风格字符串
用比较运算符比较两个C风格字符串时,实际上比较的是两个指针
使用加减法操作两个C风格字符串时,也是将两个指针进行加减
需要C风格字符串的地方不能用string替换,即不能使用string初始化指向字符的指针
string有一个成员函数c_str()将其转换为C风格字符串
对多维数组使用范围for遍历时,外层循环要加引用符,是为了避免数组被转换为指针
typedef数组时,下标运算符置后