C++中的vector是一个动态数组容器,可以存储任意类型的元素。它提供了方便的方法来动态地增加或减少数组的大小,同时还能高效地访问和修改数组中的元素。vector被广泛应用于C++编程中,本文将详细介绍vector的使用方法,并提供案例说明。
1. 包含头文件
在使用vector之前,首先需要包含头文件`#include 2. 创建和初始化vector vector的创建和初始化可以有多种方式,下面是一些常见的方法: - 使用默认构造函数创建一个空的vector,然后使用push_back()函数添加元素: ```cpp std::vector myVector.push_back(10); myVector.push_back(20); myVector.push_back(30); ``` - 在创建时指定初始大小和初始值: ```cpp std::vector ``` - 使用初始化列表进行初始化: ```cpp std::vector ``` - 通过复制另一个vector来创建: ```cpp std::vector ``` 3. 访问和修改元素 vector通过下标索引来访问和修改元素,索引从0开始。可以使用[]运算符或at()函数来访问元素。如下所示: ```cpp int value = myVector[0]; // 使用[]运算符访问第一个元素 int value2 = myVector.at(1); // 使用at()函数访问第二个元素 myVector[2] = 50; // 修改第三个元素的值 ``` 4. 添加和删除元素 vector提供了多种函数来添加和删除元素,包括push_back()、insert()和erase()等。下面是一些常见的方法: - push_back(): 向vector尾部添加一个元素。 ```cpp myVector.push_back(50); ``` - insert(): 在指定位置插入一个或多个元素。 ```cpp myVector.insert(myVector.begin() + 2, 60); // 在第三个位置插入元素60 myVector.insert(myVector.begin() + 3, 2, 70); // 在第四个位置插入两个元素70 ``` - erase(): 删除指定位置的一个或多个元素。 ```cpp myVector.erase(myVector.begin() + 3); // 删除第四个元素 myVector.erase(myVector.begin() + 2, myVector.begin() + 4); // 删除第三个和第四个元素 ``` 5. 获取vector的大小和容量 可以使用size()函数获取vector的大小,即元素个数。capacity()函数可以获取vector的容量,即当前内部数组的大小。 ```cpp int size = myVector.size(); int capacity = myVector.capacity(); ``` 6. 遍历vector元素 可以使用迭代器或基于范围的for循环来遍历vector中的元素。 - 使用迭代器: ```cpp for (std::vector int value = *it; // 处理value } ``` - 使用基于范围的for循环(C++11及以上版本): ```cpp for (int value : myVector) { // 处理value } ``` 7. 实际应用案例 下面是一个实际的案例,演示如何使用vector来存储和操作学生的成绩: ```cpp #include #include struct Student { std::string name; int score; }; int main() { std::vector students.push_back({"Alice", 80}); students.push_back({"Bob", 90}); students.push_back({"Charlie", 75}); for (const Student& student : students) { std::cout << student.name << ": " << student.score << std::endl; } return 0; } ``` 以上是对C++中vector的使用方法进行详细介绍,包括创建和初始化vector、访问和修改元素、添加和删除元素、获取大小和容量以及遍历vector元素的方法。同时提供了一个实际应用案例来演示vector的使用。希望对你有帮助! 如果你喜欢我们三七知识分享网站的文章,
欢迎您分享或收藏知识分享网站文章
欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复