当前位置: 首页 > news >正文

C++ vector 容器

C++ vector 容器概述

std::vector是 C++ 标准模板库(STL)中的动态数组容器,支持随机访问、动态扩容和高效的元素操作。其底层通过连续内存空间实现,兼具数组的高效性和动态扩展的灵活性。


基本用法

初始化
#include <vector> std::vector<int> vec1; // 空向量 std::vector<int> vec2(5, 10); // 5个元素,初始值为10 std::vector<int> vec3 = {1, 2, 3}; // 列表初始化
常用操作
vec1.push_back(4); // 尾部插入元素 vec1.pop_back(); // 删除尾部元素 vec1.size(); // 返回元素数量 vec1.empty(); // 判断是否为空 vec1[0]; // 随机访问(不检查边界) vec1.at(0); // 带边界检查的访问 vec1.clear(); // 清空所有元素

动态扩容机制

  • vector在插入元素时若容量不足,会自动分配更大的内存(通常为当前容量的 2 倍或 1.5 倍),并将旧元素拷贝到新内存。
  • 可通过reserve()预分配空间以避免频繁扩容:
    vec1.reserve(100); // 预分配100个元素的空间

迭代器与遍历

// 范围for循环(C++11) for (int x : vec1) { std::cout << x << " "; } // 迭代器遍历 for (auto it = vec1.begin(); it != vec1.end(); ++it) { std::cout << *it << " "; }

性能与复杂度

  • 随机访问:O(1)
  • 尾部插入/删除:均摊 O(1)
  • 中间插入/删除:O(n)(需移动后续元素)

与其他容器对比

特性vectorlistdeque
内存布局连续非连续分段连续
随机访问O(1)O(n)O(1)
中间插入/删除O(n)O(1)O(n)

实际应用示例

元素去重
std::sort(vec1.begin(), vec1.end()); vec1.erase(std::unique(vec1.begin(), vec1.end()), vec1.end());
二维动态数组
std::vector<std::vector<int>> matrix(3, std::vector<int>(4)); // 3x4矩阵

注意事项

  • 避免在循环中频繁调用push_back(),优先使用reserve()预分配空间。
  • 插入/删除操作可能导致迭代器失效,需谨慎处理。
  • 需要头文件<vector>和命名空间std
http://www.jsqmd.com/news/226581/

相关文章:

  • STM32驱动8位并口LCD显示屏操作指南
  • C++ 基本语法
  • 操作指南:hal_uartex_receivetoidle_dma配合中断处理异常数据帧
  • 高频信号处理篇---包络检波电路
  • 图片格式转换右键菜单版 - IMGConverter
  • 亲测好用!8款AI论文工具测评:研究生开题报告全攻略
  • Multisim示波器带宽限制功能:项目应用实例
  • 右键图片直接转换图片格式,告别繁琐的格式转换(IMGConverter)
  • 论文查重优化的现代方法:六款AI工具实现高效文本改写的操作步骤
  • 大数据领域数据科学与人工智能的融合之道
  • es安装一文说清:关键参数与目录结构解释
  • LCD显示屏驱动入门必看:手把手教你初始化配置
  • STM32调试接口配置对JLink下载的影响研究
  • 通过AI技术提升论文原创性:六大智能工具改写文本的实用技巧解析
  • 救命神器10个AI论文软件,研究生高效写作必备!
  • 大数据架构 _ 如何设计一个支持数据版本控制的系统?
  • 【C/C++】Optional实现
  • PRD算法原理与应用
  • 利用AI技术降低论文重复率:六大工具改写文本的高效技巧与策略
  • emwin双缓冲技术实现完整指南
  • 从福特流水线到AI团队:2026,中国企业的“多智能体革命”元年
  • 基于10种AI写作工具,快速重构数学建模优秀论文框架,辅以智能改写技术增强可读性。
  • 通过AI驱动的论文辅助工具,准确复现数学建模经典论文,并实现自动化文本润色。
  • 拒绝WinCC!基于WPF开发的SCADA
  • 迁移微软容器镜像注册表地址
  • 基于STM32的CANFD和CAN性能对比:深度剖析波特率切换
  • OceanBase的嵌入式数据库:vscode+python+seekdb
  • 利用前沿AI论文工具精准还原数学建模高分论文,结合智能改写功能优化语言表达。
  • 智能改写工具在论文降重中的应用:六种AI技术提升文本质量的策略
  • 借助10款AI论文写作工具,高效复现数学建模领域的优秀论文,同时通过智能改写提升内容质量。