[C++] 基础教程 - std::vector库介绍和使用场景

1. std::vector库介绍

std::vector是C++标准库中的一个动态数组容器,它可以自动调整大小以容纳任意数量的元素。std::vector提供了一种高效的方式来存储和操作数据,同时还具有很好的灵活性和可扩展性。

std::vector - cppreference.com

2. 主要的类

std::vector主要包含以下几个类:

  • std::vector<T>:表示一个存储类型为T的元素的动态数组。
  • std::vector<T>::iterator:表示指向std::vector中元素的迭代器。
  • std::vector<T>::const_iterator:表示指向std::vector中元素的常量迭代器。
  • std::vector<T>::size_type:表示std::vector中元素的数量。

3. 主要的方法

std::vector提供了许多方法来操作其元素,以下是一些常用的方法:

  • push_back():在std::vector的末尾添加一个新元素。
  • pop_back():删除std::vector末尾的元素。
  • insert():在指定位置插入一个新元素。
  • erase():删除指定位置的元素或一段范围内的元素。
  • clear():删除std::vector中的所有元素。
  • resize():调整std::vector的大小。
  • reserve():预分配std::vector的内存空间。
  • swap():交换两个std::vector的内容。
  • begin():返回指向std::vector第一个元素的迭代器。
  • end():返回指向std::vector最后一个元素之后的迭代器。
  • front():返回指向std::vector第一个元素的引用。
  • back():返回指向std::vector最后一个元素的引用。
  • at():返回指向指定位置元素的引用,如果越界则抛出异常。
  • operator[]:重载下标运算符,返回指向指定位置元素的引用。

4. 使用案例

以下是一些使用std::vector的示例:

创建一个std::vector并向其中添加元素

#include <iostream>
#include <vector>

int main() {
    std::vector<int> myVector;
    myVector.push_back(1);
    myVector.push_back(2);
    myVector.push_back(3);
    myVector.push_back(4);
    myVector.push_back(5);

    for (auto it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:1 2 3 4 5

从std::vector中删除元素

#include <iostream>
#include <vector>

int main() {
    std::vector<int> myVector = {1, 2, 3, 4, 5};

    myVector.erase(myVector.begin() + 2); // 删除下标为2的元素

    for (auto it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:1 2 4 5

将两个std::vector合并成一个

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> list1 = {1, 2, 3};
    std::vector<int> list2 = {4, 5, 6};

    std::vector<int> mergedList;
    mergedList.insert(mergedList.end(), list1.begin(), list1.end());
    mergedList.insert(mergedList.end(), list2.begin(), list2.end());

    for (auto it = mergedList.begin(); it != mergedList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:1 2 3 4 5 6

对std::vector进行排序

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> myVector = {5, 3, 1, 4, 2};

    std::sort(myVector.begin(), myVector.end());

    for (auto it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:1 2 3 4 5

倒序排序:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> myVector = {5, 3, 1, 4, 2};

    std::sort(myVector.rbegin(), myVector.rend());

    for (auto it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果:5 4 3 2 1 

5. std::vector的总结

std::vector是一个非常强大的动态数组容器,它提供了丰富的方法和功能来操作和处理数据。总之,std::vector是C++标准库中非常重要的一个组件,值得我们在学习和实践中深入了解和掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老狼IT工作室

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值