东阳的学习笔记
第8章(IO库)
- 程序崩溃后输出缓冲区不会刷新,而且有时会出现缓冲区不刷新的问题,建议手动刷新std::flush;
- 打开一个文件流之后,使用if判断文件是否被正确打开
- fstram对象销毁时会自动调用close关闭文件流
- 使用oftream打开文件时若不指定app/in模式,默认删除文件内容
第9章
- 只有顺序容器的构造函数才接受大小参数
- 内置数组不允许拷贝赋值
- 赋值相关运算符会使迭代器失效
- 除array外,swap不对任何元素进行拷贝、删除、插入操作
- 容器大小比较,先比长度,在比较第一个不相等的元素
- insert返回值指向新元素
- empalce_back直接在已分配的内存构造,不会产生临时变量
- 对空容器的访问操作是未定义行为
- 使用at会检查下标越界
- 当程序有删除/插入操作时,不要缓存end
- shrink_to_fit返回未使用的空间
- string有自带的搜索操作
第10章(泛型算法)
- back_insert
- 如果需要改变被捕获的变量的值,需要加上mutable关键字
- placeholders占位符
- 接受谓语参数的算法都有一个if后缀
第11章(关联容器)
- pair数据结构
- 无序容器用的hash表
第12章(动态内存)
动态内存(堆内存),需要程序员自己管理
- 智能指针,引用计数
- 所有使用new分配的对象,必须delete
- 不应该使用内置指针访问智能指针(share_ptr)指向的内存