vector是C++ STL中动态数组容器,需包含头文件<vector>,支持自动内存管理和动态扩容;可定义为空、指定长度或初始化值;常用操作包括push_back、pop_back、size、empty、clear、front、back、data等成员函数;遍历方式有下标、范围for循环和迭代器三种;支持在任意位置用insert插入和erase删除元素;适用于多数场景,但应避免频繁中间插入删除以保证效率。

在C++中,vector 是最常用的动态数组容器之一,属于标准模板库(STL)的一部分。它能自动管理内存,支持动态扩容,使用起来非常方便。下面详细介绍 vector 的基本用法和常见操作。
包含头文件与定义vector
要使用 vector,必须包含对应的头文件:
#include <vector>
然后可以通过以下方式定义 vector:
- std::vector<int> vec; // 定义一个空的int类型vector
- std::vector<double> vec(5); // 定义长度为5,元素初始化为0.0
- std::vector<int> vec(3, 10); // 长度为3,每个元素都是10
- std::vector<int> vec2(vec); // 用另一个vector初始化
常用成员函数操作
vector 提供了丰富的成员函数来管理数据:
立即学习“C++免费学习笔记(深入)”;
- vec.push_back(x):在末尾添加一个元素x
- vec.pop_back():删除最后一个元素
- vec.size():返回当前元素个数
- vec.empty():判断是否为空,返回true/false
- vec.clear():清空所有元素
- vec[i] 或 vec.at(i):访问第i个元素(at会做越界检查)
- vec.front():返回第一个元素
- vec.back():返回最后一个元素
- vec.data():返回指向内部数组首地址的指针
遍历vector的方法
有多种方式可以遍历 vector 中的元素:
AI图像编辑器
46
使用文本提示编辑、变换和增强照片
46
查看详情
-
下标遍历:
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << ” “;
}
-
范围for循环(C++11起):
for (const auto& x : vec) {
std::cout << x << ” “;
}
-
迭代器遍历:
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << ” “;
}
插入与删除指定位置元素
除了在尾部操作,还可以在任意位置插入或删除:
- vec.insert(it, value):在迭代器 it 指向的位置前插入 value
- vec.erase(it):删除 it 指向的元素
- vec.erase(start, end):删除从 start 到 end 范围内的元素
示例:
vec.insert(vec.begin() + 1, 99); // 在索引1处插入99
vec.erase(vec.begin()); // 删除第一个元素
基本上就这些核心操作。vector 使用灵活、性能良好,是替代原生数组的首选。只要注意避免频繁在中间插入删除(效率低),其他场景都非常适合。
相关标签:
c++ for 成员函数 include const auto int double 循环 指针
大家都在看:
c++中怎么实现单例模式_c++单例设计模式实现方法
c++中如何判断两个字符串是否为异位词_c++字符串异位词判断方法
c++中std::array和普通数组的区别_C++ std::array与C风格数组对比分析
c++中怎么检查map中是否存在某个key_c++查找map键是否存在方法
c++怎么遍历文件夹中的所有文件_c++文件夹遍历方法
c++中如何判断两个字符串是否为异位词_c++字符串异位词判断方法
c++中std::array和普通数组的区别_C++ std::array与C风格数组对比分析
c++中怎么检查map中是否存在某个key_c++查找map键是否存在方法
c++怎么遍历文件夹中的所有文件_c++文件夹遍历方法
本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END































暂无评论内容