提示信息

C++ 中 vector 的常用操作技巧

少年 已关注

在 C++ 中,std::vector 是一个非常灵活和常用的动态数组容器。下面是一些常用的 vector 操作技巧,帮助你更有效地使用 vector

  1. 初始化和填充

    • 默认构造:std::vector<int> v;
    • 指定大小并初始化为默认值:std::vector<int> v(10);
    • 指定大小并初始化为特定值:std::vector<int> v(10, 5);
    • 使用列表初始化:std::vector<int> v = {1, 2, 3, 4, 5};
  2. 添加和插入元素

    • 添加元素到末尾:v.push_back(6);
    • 插入元素到指定位置:v.insert(v.begin() + 2, 10);
  3. 删除元素

    • 删除末尾元素:v.pop_back();
    • 删除指定位置的元素:v.erase(v.begin() + 2);
    • 删除范围内的元素:v.erase(v.begin(), v.begin() + 3);
    • 清空所有元素:v.clear();
  4. 访问元素

    • 使用索引访问:int value = v[2];
    • at方法(带边界检查):int value = v.at(2);
    • 访问第一个或最后一个元素:int first = v.front(); int last = v.back();
  5. 容量和大小管理

    • 获取当前大小:size_t size = v.size();
    • 检查是否为空:bool isEmpty = v.empty();
    • 增大容量:v.reserve(20);(为将来元素添加预留空间)
    • 减小容量以适应大小:v.shrink_to_fit();
  6. 遍历元素

    • 使用范围for循环:
      for (const auto& elem : v) { std::cout << elem << " "; }
    • 使用迭代器:
      for (auto it = v.begin(); it != v.end(); ++it) { std::cout << *it << " "; }
  7. 排序和逆序

    • 排序:std::sort(v.begin(), v.end());
    • 逆序:std::reverse(v.begin(), v.end());
  8. 查找元素

    • 查找特定值:auto it = std::find(v.begin(), v.end(), 3);
    • 检查是否找到:if (it != v.end()) { /* found */ }
  9. 修改所有元素

    • 使用 std::transform 进行批量修改:
      std::transform(v.begin(), v.end(), v.begin(), [](int x) { return x * 2; });
  10. 交换两个 vector

    • v1.swap(v2);

这些技巧涵盖了各类常见操作,可以帮助你更有效地处理 C++ 中的 vector。使用这些方法时要注意 vector 会自动管理内存,但在频繁的插入删除操作上,相对于 list 可能性能不是最佳的选择。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
少年 关注 已关注

最近一次登录:2024-11-20 23:28:06   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图