赞
踩
目录
在 C++ 中,std::vector
是标准库中最常用的容器之一,它可以根据需要自动扩容,能够高效地插入、删除和访问元素。本文将深入介绍 std::vector
的使用方法,包括创建、初始化、插入、删除、访问元素等方面。
std::vector
是一个动态数组容器,可以存储同一类型的元素,例如整数、浮点数、字符串等。下面是一个创建和初始化 std::vector
对象的示例代码:
- #include <vector>
- #include <iostream>
-
- int main() {
- // 创建一个空的 vector 对象
- std::vector<int> myVector;
-
- // 创建一个含有 5 个元素的 vector 对象
- std::vector<int> myVector2(5);
-
- // 创建一个含有 5 个元素,每个元素都是 10 的 vector 对象
- std::vector<int> myVector3(5, 10);
-
- // 创建一个 vector 对象,初始化为另一个 vector 对象的副本
- std::vector<int> myVector4(myVector3);
-
- // 输出 myVector3 中的元素
- std::cout << "myVector3 中的元素是:" << std::endl;
- for (int i = 0; i < myVector3.size(); ++i) {
- std::cout << myVector3[i] << " ";
- }
- std::cout << std::endl;
-
- return 0;
- }
输出结果为:
- myVector3 中的元素是:
- 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
对象中添加元素:
- #include <vector>
- #include <iostream>
-
- int main() {
- // 创建一个空的 vector 对象
- std::vector<int> myVector;
-
- // 向 vector 中添加元素
- myVector.push_back(1);
- myVector.push_back(2);
- myVector.push_back(3);
-
- // 输出 vector 中的元素
- std::cout << "vector 中的元素是:" << std::endl;
- for (int i = 0; i < myVector.size(); ++i) {
- std::cout << myVector[i] << " ";
- }
- std::cout << std::endl;
-
- // 删除 vector 中最后一个元素
- myVector.pop_back();
-
- // 输出 vector 中的元素
- std::cout << "vector 中的元素是:" << std::endl;
- for (int i = 0; i < myVector.size(); ++i) {
- std::cout << myVector[i] << " ";
- }
- std::cout << std::endl;
-
- return 0;
- }
输出结果为:
- vector 中的元素是:
- 1 2 3
- vector 中的元素是:
- 1 2
在上面的示例代码中,我们首先创建了一个空的 `std::vector` 对象。然后,我们使用`push_back()` 函数向 `std::vector` 对象中添加三个元素。最后,我们使用 `pop_back()` 函数删除了 `std::vector` 对象中的最后一个元素。在每个步骤结束后,我们都输出了 `std::vector` 对象中的元素。
`std::vector` 对象可以像数组一样访问其元素。我们可以使用下标运算符(`[]`)或 `at()` 函数来访问 `std::vector` 对象中的元素。下面是一个示例代码,展示了如何访问 `std::vector` 对象中的元素:
- #include <vector>
- #include <iostream>
-
- int main() {
- // 创建一个含有 3 个元素的 vector 对象
- std::vector<int> myVector(3);
- myVector[0] = 1;
- myVector[1] = 2;
- myVector[2] = 3;
-
- // 使用下标运算符访问 vector 中的元素
- std::cout << "vector 中的第一个元素是:" << myVector[0] << std::endl;
-
- // 使用 at() 函数访问 vector 中的元素
- std::cout << "vector 中的第二个元素是:" << myVector.at(1) << std::endl;
-
- return 0;
- }
输出结果为:
- vector 中的第一个元素是:1
- 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
对象是否为空。下面是一个示例代码,展示了如何使用这些操作:
- #include <vector>
- #include <iostream>
-
- int main() {
- // 创建一个含有 3 个元素的 vector 对象
- std::vector<int> myVector(3);
- myVector[0] = 1;
- myVector[1] = 2;
- myVector[2] = 3;
-
- // 输出 vector 中元素的个数和已分配的存储空间的大小
- std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
- std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
-
- // 为 vector 对象分配至少能容纳 10 个元素的存储空间
- myVector.reserve(10);
-
- // 输出 vector 中元素的个数和已分配的存储空间的大小
- std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
- std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
-
- // 删除 vector 中的所有元素
- myVector.clear();
-
- // 输出 vector 中元素的个数和已分配的存储空间的大小
- std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
- std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;
-
- // 判断 vector 是否为空
- if (myVector.empty()) {
- std::cout << "vector 为空。" << std::endl;
- } else {
- std::cout << "vector 不为空。" << std::endl;
- }
-
- return 0;
- }
输出结果为:
- vector 中元素的个数为:3
- vector 中已分配的存储空间的大小为:3
- vector 中元素的个数为:3
- vector 中已分配的存储空间的大小为:10
- vector 中元素的个数为:0
- vector 中已分配的存储空间的大小为:10
- 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
的使用是非常重要的,希望本文能对您有所帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。