C++ STL中Vector的常用函数和用法

Vector(向量)是一个动态数组,在C++的STL(Standard Template Library)中有着丰富的操作函数。本文将介绍Vector的常用函数以及用法示例。

定义和创建

直接初始化

可以通过以下方式直接初始化一个Vector:

#include <vector>

std::vector<int> myVector = {1, 2, 3, 4, 5}; // 直接初始化一个包含5个整数的Vector

使用构造函数初始化

也可以使用构造函数初始化一个Vector:

#include <vector>

std::vector<int> myVector(5, 0); // 使用构造函数初始化一个包含5个元素,初始值为0的Vector

常用函数

1. push_back(val)

在向量末尾添加元素。

std::vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
// 现在myVector包含了{1, 2, 3}

2. pop_back()

移除向量末尾的元素。

std::vector<int> myVector = {1, 2, 3};
myVector.pop_back();
// 现在myVector包含了{1, 2}

3. back()

获取向量中最后一个元素的值。

std::vector<int> myVector = {1, 2, 3};
int lastElement = myVector.back(); // lastElement的值为3

4. erase(pos) 和 erase(first, last)

  • erase(pos): 删除指定位置的元素。

    myVector.erase(myVector.begin() + 2); // 删除索引为2的元素,即值为3
    // 现在myVector包含了{1, 2, 4, 5}
    
  • erase(first, last): 删除指定范围内的元素,左闭右开。

    myVector.erase(myVector.begin() + 1, myVector.begin() + 3); // 删除索引为1和2的元素,即值为2和4
    // 现在myVector包含了{1, 5}
    

5. insert(pos, val) 和 insert(pos, n, val)

  • insert(pos, val): 在指定位置插入一个元素。

    std::vector<int> myVector = {1, 2, 4, 5};
    myVector.insert(myVector.begin() + 2, 3); // 在索引为2的位置插入元素3
    // 现在myVector包含了{1, 2, 3, 4, 5}
    
  • insert(pos, n, val): 在指定位置插入n个相同的元素。

    std::vector<int> myVector = {1, 5};
    myVector.insert(myVector.begin() + 1, 3, 2); // 在索引为1的位置插入3个元素2
    // 现在myVector包含了{1, 2, 2, 2, 5}
    

示例

以下是一个完整的示例代码,演示了Vector的常用函数的用法:

#include <iostream>
#include <vector>

int main() {
    // 直接初始化一个Vector
    std::vector<int> myVector = {1, 2, 3, 4, 5};

    std::cout << "Vector elements before insert: ";
    for (int num : myVector) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // 在索引为2的位置插入元素100
    myVector.insert(myVector.begin() + 2, 100);

    std::cout << "Vector elements after insert 1: ";
    for (int num : myVector) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // 在索引为1的位置插入3个元素50
    myVector.insert(myVector.begin() + 1, 3, 50);

    std::cout << "Vector elements after insert 2: ";
    for (int num : myVector) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

水平有限,有问题随时交流;

相关推荐

  1. C++ STLVector函数

    2024-04-04 02:42:01       41 阅读
  2. C++vectorsort

    2024-04-04 02:42:01       51 阅读
  3. 总结 SpringMVC 注解

    2024-04-04 02:42:01       55 阅读
  4. SpringMVC 注解

    2024-04-04 02:42:01       45 阅读
  5. SpringMVC 注解

    2024-04-04 02:42:01       148 阅读
  6. MATLABcell函数

    2024-04-04 02:42:01       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 02:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 02:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 02:42:01       82 阅读
  4. Python语言-面向对象

    2024-04-04 02:42:01       91 阅读

热门阅读

  1. Linux编译Go运行在Windows上(纯记录)

    2024-04-04 02:42:01       39 阅读
  2. vue单页面应用(SPA)的首屏加载速度优化

    2024-04-04 02:42:01       37 阅读
  3. 关于调试打印

    2024-04-04 02:42:01       148 阅读
  4. linux shell脚本不加载环境变量问题

    2024-04-04 02:42:01       35 阅读
  5. 观察者模式

    2024-04-04 02:42:01       33 阅读
  6. openGauss 反向全量迁移

    2024-04-04 02:42:01       37 阅读
  7. 并查集

    并查集

    2024-04-04 02:42:01      33 阅读
  8. 【Redis】初识 Redis

    2024-04-04 02:42:01       38 阅读
  9. 【动态规划】【背包问题】基础背包

    2024-04-04 02:42:01       43 阅读
  10. 【Kotlin】Sequence简介

    2024-04-04 02:42:01       34 阅读