第三章 字符串,向量和数组
string
- cin>>str的返回值还是std::cin,若读入eof,则返回值为空,因此有
- 刷题的时候经常遇到,得用一个getchar()把回车先读进来
- string对象的比较规则
- c++新增遍历元素的for,若想改变遍历的对象,采用引用即可
vector
- 初始化时采用(), {}的区别巨大
- 注意下标,不能越界;
- vector可以采用push_back来添加元素
迭代器
- end指向尾元素的后一个位置,即容器中不存在的尾后元素
- 迭代器可以进行解运算和加减运算
数组
- 声明形式为type name[sz],其中sz为constexp,与vector的最大区别是定长
- 由内向外理解声明
- 数组的取别名
不允许使用一个数组初始化另一个数组
数组与指针:一些情况下,数组的操作,实际上就是指针的操作
编译器会把用到数组名字的地方,换成指向数组首元素的指针
decltype中用到数组名字时,不会换成指针
指针也是迭代器
C++11新增begin和end函数(iterator头文件中),获取数组的首元素指针和尾后指针
指针之间可以进行类似迭代器的加减运算
arr[i]等价于*(arr + i)
string s.c_str()方法先前的返回值可能会因为字符串s的变化而失效,因此建议备份而不只是用一个指针来记录
多维数组初始化:
- C++新增范围for语句,可以用来调用多维数组,外层要用引用,避免数组对象被替换为指针
- 也可以使用begin,end函数来实现循环便利
- Title: 第三章 字符串,向量和数组
- Author: Huan Lee
- Created at : 2023-08-20 13:03:16
- Updated at : 2024-02-26 04:53:15
- Link: https://www.mirthfullee.com/2023/08/20/notion-第三章 字符串,向量和数组-2377ea53/
- License: This work is licensed under CC BY-NC-SA 4.0.