当前位置:   article > 正文

C++中std::vector容器的入门讲解

std::vector

目录

创建和初始化

插入和删除元素

访问元素

其他操作

总结


在 C++ 中,std::vector 是标准库中最常用的容器之一,它可以根据需要自动扩容,能够高效地插入、删除和访问元素。本文将深入介绍 std::vector 的使用方法,包括创建、初始化、插入、删除、访问元素等方面。

创建和初始化

std::vector 是一个动态数组容器,可以存储同一类型的元素,例如整数、浮点数、字符串等。下面是一个创建和初始化 std::vector 对象的示例代码:

  1. #include <vector>
  2. #include <iostream>
  3. int main() {
  4. // 创建一个空的 vector 对象
  5. std::vector<int> myVector;
  6. // 创建一个含有 5 个元素的 vector 对象
  7. std::vector<int> myVector2(5);
  8. // 创建一个含有 5 个元素,每个元素都是 10 的 vector 对象
  9. std::vector<int> myVector3(5, 10);
  10. // 创建一个 vector 对象,初始化为另一个 vector 对象的副本
  11. std::vector<int> myVector4(myVector3);
  12. // 输出 myVector3 中的元素
  13. std::cout << "myVector3 中的元素是:" << std::endl;
  14. for (int i = 0; i < myVector3.size(); ++i) {
  15. std::cout << myVector3[i] << " ";
  16. }
  17. std::cout << std::endl;
  18. return 0;
  19. }

输出结果为:

  1. myVector3 中的元素是:
  2. 10 10 10 10 10

在上面的代码中,我们创建了四个不同的 std::vector 对象,并分别进行了初始化。第一个 std::vector 对象是一个空的对象,不包含任何元素。第二个 std::vector 对象是含有 5 个元素的对象,但没有指定元素的值,默认初始化为 0。第三个 std::vector 对象是含有 5 个元素的对象,每个元素都是 10。第四个 std::vector 对象是初始化为第三个 std::vector 对象的副本。

插入和删除元素

std::vector 对象可以动态增加和删除元素,我们可以使用 push_back() 函数向 std::vector 对象中添加元素。下面是一个示例代码,展示了如何向 std::vector 对象中添加元素:

  1. #include <vector>
  2. #include <iostream>
  3. int main() {
  4. // 创建一个空的 vector 对象
  5. std::vector<int> myVector;
  6. // 向 vector 中添加元素
  7. myVector.push_back(1);
  8. myVector.push_back(2);
  9. myVector.push_back(3);
  10. // 输出 vector 中的元素
  11. std::cout << "vector 中的元素是:" << std::endl;
  12. for (int i = 0; i < myVector.size(); ++i) {
  13. std::cout << myVector[i] << " ";
  14. }
  15. std::cout << std::endl;
  16. // 删除 vector 中最后一个元素
  17. myVector.pop_back();
  18. // 输出 vector 中的元素
  19. std::cout << "vector 中的元素是:" << std::endl;
  20. for (int i = 0; i < myVector.size(); ++i) {
  21. std::cout << myVector[i] << " ";
  22. }
  23. std::cout << std::endl;
  24. return 0;
  25. }

输出结果为:

  1. vector 中的元素是:
  2. 1 2 3
  3. vector 中的元素是:
  4. 1 2

在上面的示例代码中,我们首先创建了一个空的 `std::vector` 对象。然后,我们使用`push_back()` 函数向 `std::vector` 对象中添加三个元素。最后,我们使用 `pop_back()` 函数删除了 `std::vector` 对象中的最后一个元素。在每个步骤结束后,我们都输出了 `std::vector` 对象中的元素。

访问元素

`std::vector` 对象可以像数组一样访问其元素。我们可以使用下标运算符(`[]`)或 `at()` 函数来访问 `std::vector` 对象中的元素。下面是一个示例代码,展示了如何访问 `std::vector` 对象中的元素:

  1. #include <vector>
  2. #include <iostream>
  3. int main() {
  4. // 创建一个含有 3 个元素的 vector 对象
  5. std::vector<int> myVector(3);
  6. myVector[0] = 1;
  7. myVector[1] = 2;
  8. myVector[2] = 3;
  9. // 使用下标运算符访问 vector 中的元素
  10. std::cout << "vector 中的第一个元素是:" << myVector[0] << std::endl;
  11. // 使用 at() 函数访问 vector 中的元素
  12. std::cout << "vector 中的第二个元素是:" << myVector.at(1) << std::endl;
  13. return 0;
  14. }

输出结果为:

  1. vector 中的第一个元素是:1
  2. vector 中的第二个元素是:2

在上面的示例代码中,我们创建了一个含有 3 个元素的 std::vector 对象,并分别使用下标运算符和 at() 函数访问了其中的元素。

其他操作

除了上述操作之外,std::vector 还支持许多其他操作,例如:

  • size():返回 std::vector 对象中元素的个数。
  • capacity():返回 std::vector 对象中已分配的存储空间的大小。
  • reserve(n):为 std::vector 对象分配至少能容纳 n 个元素的存储空间。
  • clear():从 std::vector 对象中删除所有元素。
  • empty():判断 std::vector 对象是否为空。

下面是一个示例代码,展示了如何使用这些操作:

  1. #include <vector>
  2. #include <iostream>
  3. int main() {
  4. // 创建一个含有 3 个元素的 vector 对象
  5. std::vector<int> myVector(3);
  6. myVector[0] = 1;
  7. myVector[1] = 2;
  8. myVector[2] = 3;
  9. // 输出 vector 中元素的个数和已分配的存储空间的大小
  10. std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
  11. std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
  12. // 为 vector 对象分配至少能容纳 10 个元素的存储空间
  13. myVector.reserve(10);
  14. // 输出 vector 中元素的个数和已分配的存储空间的大小
  15. std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
  16. std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
  17. // 删除 vector 中的所有元素
  18. myVector.clear();
  19. // 输出 vector 中元素的个数和已分配的存储空间的大小
  20. std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
  21. std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
  22. // 判断 vector 是否为空
  23. if (myVector.empty()) {
  24. std::cout << "vector 为空。" << std::endl;
  25. } else {
  26. std::cout << "vector 不为空。" << std::endl;
  27. }
  28. return 0;
  29. }

输出结果为:

  1. vector 中元素的个数为:3
  2. vector 中已分配的存储空间的大小为:3
  3. vector 中元素的个数为:3
  4. vector 中已分配的存储空间的大小为:10
  5. vector 中元素的个数为:0
  6. vector 中已分配的存储空间的大小为:10
  7. vector 为空。

在上面的示例代码中,我们首先创建了一个含有 3 个元素的 `std::vector` 对象,并输出了其中的元素个数和已分配的存储空间的大小。然后,我们使用 `reserve()` 函数为 `std::vector` 对象分配至少能容纳 10 个元素的存储空间,并输出了其中的元素个数和已分配的存储空间的大小。接着,我们使用 `clear()` 函数删除了 `std::vector` 对象中的所有元素,并输出了其中的元素个数和已分配的存储空间的大小。最后,我们使用 `empty()` 函数判断 `std::vector` 对象是否为空,并输出了相应的结果。

总结

本文介绍了 std::vector 的用法。 std::vector  是 C++ 标准库中的一个容器,用于存储一组具有相同类型的元素。 std::vector 具有动态分配内存、随机访问、尾部添加和删除元素等特性,是C++中常用的数据结构之一。在使用 std::vector 时,需要注意以下几点:

  • 通过调用 std::vector 的构造函数或 push_back() 函数可以向其中添加元素;
  • 通过下标操作符 [] 可以访问指定位置的元素;
  • 通过调用 size() 函数可以获取 std::vector 中的元素个数;
  • 通过调用 capacity() 函数可以获取 std::vector 中已分配的存储空间的大小;
  • 通过调用 reserve() 函数可以为 std::vector 对象分配至少能容纳指定个数的元素的存储空间;
  • 通过调用 clear() 函数可以删除 std::vector 中的所有元素;
  • 通过调用 empty() 函数可以判断 std::vector 是否为空。

除了上述常用操作外,std::vector 还支持其他许多操作,如插入元素、删除元素、交换 std::vector 对象、查找元素等。在使用 std::vector 时,需要根据具体需求选择合适的操作。

总的来说,std::vector 是一个非常实用的容器,可以帮助我们快速、高效地管理一组元素。对于 C++ 开发者来说,掌握 std::vector 的使用是非常重要的,希望本文能对您有所帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号