C++ 引用计数reference count实现智能指针
C++ 引用计数reference count实现智能指针 : 前面说到,含有指针成员的类容易出现悬垂指针的问题,特别是类的对象有复制,赋值等行为时;referecen count 的核心思维是,使用一个计数器来标识当前指针指向的对象被多少类的对象所使用,即记录指针指向对象被引用的次数;
C++ Programming language
C++ 引用计数reference count实现智能指针 : 前面说到,含有指针成员的类容易出现悬垂指针的问题,特别是类的对象有复制,赋值等行为时;referecen count 的核心思维是,使用一个计数器来标识当前指针指向的对象被多少类的对象所使用,即记录指针指向对象被引用的次数;
了解了string 的内存分配策略, 知道如果添加100个元素, 这string的capacity 需要增加到128 , 这需要8次重新分配内存的过程.故提高性能的方式是 通过reserve() 指定第一个就分配128 , 这样添加100 个元素只有1次内存分配的过程
erase ,pop_front,pop_back 函数会使指向被删除元素的所有迭代器失效.对于vector 容器来说,指向删除节点后面的元素的迭代器也会失效.对于deque容器,如果删除时不包含第一个或最后一个元素,那么该deque容器相关的所有迭代器都会失效
vector的内存管理以及3种顺序容器的选择:2.1 vector容器为了获取快速的随机访问,元素必须在内存中连续存储。2.2 为了避免每次增加或删除元素时都需要重新开辟存储空间, vector 实际分配的内存比当前需要的内存会多一些,即capacity() 一般会大于size()
C++顺序容器: 顺序容器内的元素按照其位置存储和访问,元素的排列次序由元素添加到容器里的次序决定. 标准库定义了vector,list,deque 三种顺序容器,以及stack,queue,priority_queue三种顺序容器适配器;
stringstream 的作用:类型转换,词句转换.
stringstream 一般可以用来实现安全的数据类型转换;利用stringstream 实现句子与单个单词之间的转换
原题: 编写一个函数,其唯一形参和返回值都是istream & 类型。 该函数应一致读取流知道遇到文件结束符为止,还应该将读取到的内容输出到标准输出中。 最后,重设流使其有效,并返回该流。