代码改变世界

C++笔记

2020-07-28 14:12  cascle  阅读(224)  评论(0编辑  收藏  举报

0:C++是一门研究编译器的语言

1:不明确行为:访问指向未知区域的指针(或者无效指针),导致运行期不确定行为

2:除了编译器自带的标准库STL,还有STLPort,SGI STL ,Boost,TR1等库可以使用

3:Vector的size和capacity区别,reserve,clear,swap,shrink用法

4:STLFilter,方便调试

5:string_view解决问题字符串临时构造问题

6:std::any,std::vector<std::any>>节省模板编译或者lto(link time optimization)编译选项

7: boost的multi_index_container 多索引容器,支持任意多个索引,联合索引,性能一流,没被采用可惜了

8:内存指针异常,一是泄漏没有释放,比如返回的指针值没有被对象引用直接丢掉,二是重复释放,比如两个指针指向一块内存多次释放没有同步(临时对象销毁后也可能导致悬空指针),三是指针操作越界,污染其他内存,四是指针多个持有者,一个突然释放另外一个持有者不知道还在使用,五是调用了错误的delete函数

9:小心handle导致类内成员获的比对象更长问题

10:预编译头文件技术使用

11:String的实现源码看一遍