码迷,mamicode.com
首页 > 其他好文 > 详细

STL之vector

时间:2017-12-15 20:11:32      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:vector   代码   它的   容量   深复制   size   插入   log   我的电脑   

在我的电脑中,vector的代码位于/usr/include/c++/4.2.1/bits/vector.tcc

先概括细节:

  1. vector仍是基本数组,也就是一个连续的内存块。
  2. 通过复制构造,opernator=函数来实现深复制,通过析构函数回收基本数组。
  3. 可以用resize来改变大小
  4. 提供operator[]来访问和修改内容

 

给定两个vector,v1和v2,使v1的内容和v2的后半部分一样的最简单方式是什么?

v1.assign(v2.begin() + v2.size() / 2, v2.end());

 

当你试图去把一个元素插入内存已经满了的vector时,这个vector会分配具有更多 容量的新内存,从旧内存把它的元素拷贝到新内存,销毁旧内存里的元素,回收旧内存。然后它添加插入的元素.

以每次一个地插入1000个元素会导致10次新
的分配(包括它们负责的元素拷贝)

STL之vector

标签:vector   代码   它的   容量   深复制   size   插入   log   我的电脑   

原文地址:http://www.cnblogs.com/jackson-zhou/p/8044549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!