C++ Primer 学习笔记_98_特殊工具与技术 --优化内存分配(三)

2015-07-24 06:51:20 · 作者: · 浏览: 183
s + size,elements + n,T()); } else { for (T *p = first_free; p != elements + n;) { alloc.destroy(--p); } } first_free = elements + n; } template void Vector ::resize(const size_t n,const T &t) { size_t size = first_free - elements; if (n > capacity()) { reallocate(); std::uninitialized_copy(elements + size,elements + n,t); } else if (n > size) { std::uninitialized_copy(elements + size,elements + n,t); } else { for (T *p = first_free; p != elements + n;) { alloc.destroy(--p); } } first_free = elements + n; } template
T &Vector ::operator[](const size_t index) { return elements[index]; } template const T &Vector ::operator[](const size_t index) const { return elements[index]; }