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

STL标准模板库

时间:2014-08-26 22:58:07      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   strong   for   ar   div   代码   log   

Vector:

 写vector时候碰到这样一段代码:

    for(int j=0;j<v1.size();j++)
    { 
       printf("%d %d",j,v1[j]);
       printf("%d",v1.size());
       if(v1[j]==4)
       {
          v1.insert(v1.begin(),5); //在访问元素之前插入元素,那么元素的顺序整体就后面移动一位,那么一直访问到的都是4
          j++; 
       }
       getchar();
    }

Notice: 如果在遍历中需要插入删除元素,那么v1.size不能固定下来,否则会遗漏尾部的元素,在插入之后注意把迭代器或者索引向后移动一位,这样才会指向插入前那个元素的位置。在由迭代器加1指向下一个元素。

其实VECTOR本质上是一个可以容纳任何类型的动态数组。他用到了C++的动态数组,本质上是一个数组,存放在连续的区域,由此可以知道,中间插入或者删除会导致内存区域整块地移动,这样效率很低。所以Vector适合那些经常需要随机访问的类型,当让在末尾push_back,pop_back的速度是很快的,不会导致内存区域的整片移动。

 

STL标准模板库

标签:style   blog   color   strong   for   ar   div   代码   log   

原文地址:http://www.cnblogs.com/championlai/p/3938336.html

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