一、背景介绍 vector作为STL的常用容器之一,其特性和数组类似,拥有一段连续的内存空间。vector申请的是一段连续的内存,当插入新的元素内存不够时,通常会再重新申请更大的一块内存,将原来的元素拷贝过去,释放旧空间。因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为O(n)。 二、...
原因在于std::allocator的allocate和deallocate函数分别包装全局分配函数::operator new和解分配函数::operator delete,这些函数是C++语言核心所要求的,并且可以被用户替换。这导致目前不一定有机制使std::allocator支持原位收缩/扩张或自动重新分配。此外,C的realloc函数在C++环境中并不灵活。目前C++的对象模型...
在此向量的指定位置插入指定的元素。 boolean addAll(Collection<? extends E> c) 将指定 Collection 中的所有元素追加到此向量的末尾,按照指定集合的迭代器所返回的顺序追加这些元素。 boolean addAll(int index, Collection<? extends E> c) 在指定位置将指定 Collection 中的所有元素插入到此向量中。 void add...