vector动态数组的基本语法作用
发布时间:2026/10/11 6:45:36 锦皓数字建站

动态数组是可变数组其自身容量可以不断延伸与缩减底层依旧是一段连续的内存空间因此在添加元素时元素也是连续存放。创建在动态一维数组的创建中我们会使用vector元素类型 变量名的形式进行创建。同理二维数组则是vectorvector元素类型 变量名。值得一提的是动态二维数组整体内存并不是连续的外层 vector 存放的是各个内层 vector 的地址每一行都是各自独立的 vector 在堆上分配内存。只有单独一行内部的元素保持连续行与行之间内存不相邻。因此其添加、查找操作也和静态二维数组有所不同。增删改查增添加元素添加一行使用push_back()向外层 vector 追加一整行vectorint新增的行独立分配内存。在某一行末尾添加元素a[i].push_back(值)给第i行追加元素该行内部自动扩容。注意不能直接a[i][j]赋值如果第 i 行还没有创建会发生数组越界。删删除元素删除最后一行a.pop_back()直接移除外层 vector 末尾的一行。删除某一行末尾元素a[i].pop_back()删除第 i 行的最后一个元素。删除指定位置元素使用erase()删除中间元素时该行后面所有元素需要向前移动时间复杂度 O (n)。改修改元素直接通过下标a[i][j] 新值修改第 i 行第 j 列的元素。前提i、j 不能超出当前行、列的有效范围。查访问 / 查找元素随机访问a[i][j]直接读取第 i 行第 j 列元素单行内部支持 O (1) 下标访问。遍历查找需要双重循环逐个比对元素找到目标值。由于行与行内存不连续不能像静态二维数组那样单重循环一次性遍历全部元素。数组循环二维 vector 遍历需要双重循环外层循环遍历每一行内层循环遍历当前行的每一列。因为各行长度可以不一致锯齿数组内层循环要用a[i].size()获取当前行的元素个数不能固定列长。下图为两种方法
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。