2026/6/20 4:54:15
网站建设
项目流程
wordpress的备份,做网站优化推广的好处,网站发展趋势和前景,企业网站虚假宣称iso9001的处罚案例C vector 容器概述std::vector 是 C 标准模板库#xff08;STL#xff09;中的动态数组容器#xff0c;支持随机访问、动态扩容和高效的元素操作。其底层通过连续内存空间实现#xff0c;兼具数组的高效性和动态扩展的灵活性。基本用法初始化#include vector
std::…C vector 容器概述std::vector是 C 标准模板库STL中的动态数组容器支持随机访问、动态扩容和高效的元素操作。其底层通过连续内存空间实现兼具数组的高效性和动态扩展的灵活性。基本用法初始化#include vector std::vectorint vec1; // 空向量 std::vectorint vec2(5, 10); // 5个元素初始值为10 std::vectorint 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循环C11 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::vectorstd::vectorint matrix(3, std::vectorint(4)); // 3x4矩阵注意事项避免在循环中频繁调用push_back()优先使用reserve()预分配空间。插入/删除操作可能导致迭代器失效需谨慎处理。需要头文件vector和命名空间std。