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

本文详细介绍了C++中string对象的初始化、读取、操作特性以及与C风格字符串的转换。同时,讲解了vector的初始化方式、元素添加规则以及注意事项,包括在读写时对容器大小的限制。此外,还提到了数组和多维数组的使用细节,如默认初始化、类型转换以及遍历规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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数组时,下标运算符置后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烂人王

求求了 赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值