首页 > 其他分享 >stl之vector

stl之vector

时间:2023-03-12 17:23:24浏览次数:28  
标签:finish end stl storage vector 空间 扩充

对vector的理解

vector就是可以扩充的array,它有三个指针:start、finish、end_of_storage,分别代表 vector 存放了数据的开始、结束和整个容量的尾巴,它扩充的时候也不是原地就扩充(一般是2倍扩充),而是会找新的满足扩充后容量的空间,如果没有容量能满足那就结束,扩充失败

扩充空间的过程,基于G2.9

1、首先就是用push_back来调用增加元素,需要先判断 finish 是否等于 end_of_storage ,不是的话还有容量直接添加进去,否则需要扩容

2、扩容的函数不一定只是 vector 在用,所以在重新判断下finish 是否等于 end_of_storage ,否则扩容,在选定扩容的长度时,要判断下是不是初始长度:0,是的话设1,其他情况直接 *2

3、那接下来就是把原空间的值复制到新空间里,但是这个函数可能会被 insert 用来中间插入,所以在前段复制好后,再将后段复制一下,当然 vector 不会受到影响

4、要注意把原空间释放

vector iterator

因为 vector 空间是连续的,那按理说直接用指针就可以,不用像 list 一样用 class

所以 traits 问它的时候,是其走偏特化的那部分

标签:finish,end,stl,storage,vector,空间,扩充
From: https://www.cnblogs.com/acwarming/p/17161818.html

相关文章

  • [STL] 3 迭代器概念与 traits 编程技法
    3迭代器概念与traits编程技法3.1迭代器设计思维——STL关键所在中心思想在于将数据容器和算法分开。3.2迭代器是一种智能指针迭代器最重要的编程工作是对opera......
  • PentestLab-web安全SQL注入-EXP2
    我们打开pentestlab靶机选择“sql  injections”选择“Example2”观察页面发现name是注入点使用工具测试sqlmap参数为pythonsqlmap.py-u"http://192.168.29.148/sqli/......
  • C++ 标准库中的 vector
    标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象,都有一个与之对应的索引,索引用于访问对象。vector是一个类模板,编译器根据模板创建类或者函......
  • STL:map映照容器的简单用法(poj 2503 Babelfish)
    STL中map映照容器由一个键值和一个映照数据组成,具有一一对应的关系。结构为:键值--映照数据       例: aaa --111             bbb--222   ......
  • 链表指针指迷了我(UVA 11988 STL deque)
    BrokenKeyboard(a.k.a.BeijuText)You'retypingalongtextwithabrokenkeyboard.Wellit'snotsobadlybroken.Theonlyproblemwiththekeyboardisthats......
  • 使用jstl得加pom里的依赖
    <!--jstl--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><......
  • PentestLab-web安全XSS注入-EXP5
    我们打开靶机选择“Example5”观察使用工具测试选择get方法输入url使用默认字典存在xss漏洞且payload为</script>"><script>prompt(1)</script>验证我们打开靶机观察源代码......
  • pat 乙级1024 科学计数法关于stl中size()的一些思考即测试点六,无符号整数问题
    来,先看题目:1024科学计数法分数20作者HOU,Qiming单位浙江大学科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9].[0-9]+......
  • C++ STL学习笔记-C++ STL基础
    仅自己回忆使用,若有侵权,联系删除algorithm实用库函数sort:迭代器类型必须为随机访问迭代器(first,last),应该支持<运算符,可以自己写比较nth_element()>partial_sort()......
  • Java容器类List、ArrayList、Vector及map、HashTable、HashMap
    ArrayList和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引......