亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ std::vector 完全指南:动态数组、迭代器、修改器与实战示例

什么是 C++ vector?

C++ vector 是随元素增删自动调整大小的动态数组。元素连续存储,支持快速索引访问和迭代器遍历。

尾部插入为均摊常数时间。删除尾部元素也是常数时间,而在头部或中间插入/删除需移动元素,时间复杂度为线性。

何时使用 vector?

如何初始化 vector

std::vector<data-type> name (size, value); // size 和 value 可选 

迭代器

迭代器提供指针式接口访问 vector 元素。常用迭代器函数:

修改器

修改器改变 vector 内容。关键函数:

示例 1:基础迭代

#include <iostream> #include <vector> int main() { std::vector<int> nums; for (int a = 1; a <= 5; ++a) { nums.push_back(a); } std::cout << "Output from begin and end: "; for (auto it = nums.begin(); it != nums.end(); ++it) { std::cout << *it << ' '; } std::cout << "\nOutput from cbegin and cend: "; for (auto it = nums.cbegin(); it != nums.cend(); ++it) { std::cout << *it << ' '; } return 0; } 

输出:

C++ std::vector 完全指南:动态数组、迭代器、修改器与实战示例

示例 2:高级修改器

#include <iostream> #include <vector> int main() { std::vector<int> nums; nums.assign(5, 1); // 五个元素全初始化为 1 std::cout << "Vector contents: "; for (size_t i = 0; i < nums.size(); ++i) { std::cout << nums[i] << ' '; } nums.push_back(2); std::cout << "\nLast element: " << nums.back(); nums.pop_back(); std::cout << "\nVector contents: "; for (int a : nums) std::cout << a << ' '; nums.insert(nums.begin(), 7); std::cout << "\nFirst element: " << nums.front(); nums.clear(); std::cout << "\nSize after clear(): " << nums.size(); return 0; } 

输出:

C++ std::vector 完全指南:动态数组、迭代器、修改器与实战示例

容量相关函数

确定和操纵 vector 存储特性的函数:

示例 3:容量探索

#include <iostream> #include <vector> int main() { std::vector<int> vector1; for (int x = 1; x <= 10; ++x) { vector1.push_back(x); } std::cout << "Vector size: " << vector1.size() << std::endl; std::cout << "Vector capacity: " << vector1.capacity() << std::endl; std::cout << "Maximum size of vector: " << vector1.max_size() << std::endl; vector1.resize(5); std::cout << "Vector size after resizing: " << vector1.size() << std::endl; if (!vector1.empty()) std::cout << "Vector is not empty" << std::endl; else std::cout << "Vector is empty" << std::endl; return 0; } 

输出:

C++ std::vector 完全指南:动态数组、迭代器、修改器与实战示例

核心要点

C语言

  1. 精通C标准库函数:实战指南
  2. C++ 运算符全解析:类型、示例与示例程序
  3. C++ do-while 循环详解:语法、实战示例与嵌套循环
  4. 掌握 C++ switch-case:语法、用法与实战示例
  5. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  6. C++ 指针精通:核心概念、代码示例与实战应用
  7. C++ 运算符重载实战指南:语法、方法、限制与代码示例
  8. C++ 结构体详解:定义、初始化、指针、函数参数与局限性
  9. C++ std::map 完全指南:键值对容器、核心操作与实战代码
  10. 掌握 C++ std::list:语法、函数与实战示例
  11. C++ 函数详解:从声明到调用的实战指南
  12. C++ Struct 与 Class 核心差异、语法及最佳实践