STL学习笔记-4-序列式容器
vectorvector实际上是一个大小不定的线性空间。 vector提供的是Random Access Iterators。 如果加入新的元素时,空间不足以容纳,就会去请求更大的空间,来容纳。 12345678void push_back(const T& x) { if (finish != end_of_storage) { construct(f
vectorvector实际上是一个大小不定的线性空间。 vector提供的是Random Access Iterators。 如果加入新的元素时,空间不足以容纳,就会去请求更大的空间,来容纳。 12345678void push_back(const T& x) { if (finish != end_of_storage) { construct(f
auto_ptr12345void remodel(string & str) { string * ps = new string(str); str = ps; return;} 这段代码会造成内存泄漏,我们会想说在函数return之前记得delete ps即可避免内存泄漏。 12345678void remodel(string & s
2.3 内存基本处理工具这里面主要包括了三个函数 uninitialized_copy() uninitialized_fill() uninitialized_fill_n() 对应着高层次的函数 copy() fill() fill_n() 这些都是STL算法。 uninitialized_copy()讲某一区间的内容复制到另一个区间: 配置内存区块,足以包含范围内的所有元素 使用该
笔记p45出现了::operator new和::operator delete,这个地方比较难理解。首先,先把new和delete当作一个操作符,因此要重载它的时候需要加个operator。 1::operator new 这个语句的意思是在全局命名空间下的new操作符。 重要概念模版特化函数模版特化比如设置了一个带有模版的函数,但是我想对其中的某种类型参数的函数进行单独定义。如果不含有这个机制