• 【C++学习笔记】标准库容器Vector可变长度实现原理


    vector是C++中标准库容器的一种,vector与C++基本类型数组最大的不同是:数组定长,在初始化时必须定义长度,且不可再添加元素;vector可使用vec.pusu_back()来动态增加元素。

    数组和vector都是线性表的顺序存储结构。
    数组在定义时就规划了一片固定长度的内存空间,一般不可增加,若要再增加,需要重新申请内存;
    那么,vector的动态增加元素是怎么实现的呢?vector其实也是在定义的时候就规划了一篇内存空间,但是内存空间比定义的size要大,也就是说预留了一部分内存空间来用于存储新增的元素。而且还可以自己定义需要预留的空间大小,vec.reserve() 这样就不会对内存空间造成太大的浪费。

    总的来说,数组是C++的基本类型,不可增长,空间利用效率高,但是不是很灵活实用,如果溢出的话还可能有存在很大的程序安全问题;vector是标准库定义的类模板,支持的函数非常丰富,而且支持动态添加,但是需要预留一部分空间作为预留空间,存在一定的浪费,但是可以通过自定义预留空间最小化空间浪费。vector比数组要实用很多。

  • 相关阅读:
    jar 常用操作
    linux 加载新的磁盘(卷组)
    apache 代理配置
    spring boot datasource 参数设置
    svn 常用命令
    最详细的maven教程
    centos 用户组操作
    ubuntu命令行操作mysql常用操作
    Ruby-Clamp
    maven使用备忘
  • 原文地址:https://www.cnblogs.com/yyehl/p/6652933.html
Copyright © 2020-2023  润新知