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;
}

水平有限,有问题随时交流;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值