c++ vector用法详解

C++中的vector是一个非常有用的容器,它可以存储不同类型的元素,并且可以根据需要动态地调整容器的大小。在本文中,我将详细介绍vector的用法和常用方法,并提供一些案例来帮助你更好地理解它的应用。

一、vector的声明和初始化

在使用vector之前,我们需要包含vector头文件:

```cpp

#include

```

声明一个vector需要指定元素的类型,可以是基本类型(如int,double等),也可以是自定义的对象。下面是一些例子:

```cpp

vector myVector; // 声明一个存储整数的vector

vector myVector2; // 声明一个存储浮点数的vector

vector myVector3; // 声明一个存储字符串的vector

```

我们还可以使用初始化列表来初始化vector:

```cpp

vector myVector = {1, 2, 3, 4, 5}; // 初始化一个包含5个元素的vector

```

二、向vector中添加元素

使用vector的push_back()函数可以将元素添加到vector的末尾。例如:

```cpp

vector myVector;

myVector.push_back(1); // 向myVector中添加一个元素1

myVector.push_back(2); // 向myVector中添加一个元素2

myVector.push_back(3); // 向myVector中添加一个元素3

```

三、访问vector中的元素

可以使用下标运算符[]或at()函数来访问vector中的元素。例如:

```cpp

vector myVector = {1, 2, 3, 4, 5};

int firstElement = myVector[0]; // 访问第一个元素

int secondElement = myVector.at(1); // 访问第二个元素

```

四、获取vector的大小和容量

可以使用size()函数获取vector中的元素个数,可以使用capacity()函数获取vector的当前容量(即可容纳的元素数量)。例如:

```cpp

vector myVector = {1, 2, 3, 4, 5};

int size = myVector.size(); // 获取vector中的元素个数

int capacity = myVector.capacity(); // 获取vector的容量

```

五、遍历vector

可以使用迭代器(iterator)来遍历vector中的元素。迭代器类似于指针,可以指向vector中的某个元素,并且可以进行比较、自增、自减等操作。下面是一个使用迭代器遍历vector的例子:

```cpp

vector myVector = {1, 2, 3, 4, 5};

for (vector::iterator it = myVector.begin(); it != myVector.end(); ++it) {

cout << *it << " ";

}

```

输出结果为:1 2 3 4 5

六、删除vector中的元素

可以使用erase()函数来删除vector中的元素。也可以使用pop_back()函数删除vector中的最后一个元素。例如:

```cpp

vector myVector = {1, 2, 3, 4, 5};

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

myVector.pop_back(); // 删除最后一个元素

```

七、其他常用的vector方法

除了上述介绍的方法,vector还提供了一些其他的常用方法,如insert()函数用于在指定位置插入元素,clear()函数用于清空所有元素,等等。这些方法的具体用法可以参考C++官方文档或相关教程。

案例说明:

假设我们有一个学生类,包含学生的姓名和年龄信息。我们可以使用vector来存储学生对象,并进行增删查改等操作。

```cpp

#include

#include

#include

class Student {

public:

std::string name;

int age;

Student(std::string name, int age) {

this->name = name;

this->age = age;

}

};

int main() {

std::vector studentVector;

// 添加学生

studentVector.push_back(Student("Tom", 18));

studentVector.push_back(Student("Jack", 20));

studentVector.push_back(Student("Alice", 19));

// 遍历学生信息

for (std::vector::iterator it = studentVector.begin(); it != studentVector.end(); ++it) {

std::cout << "Name: " << it->name << ", Age: " << it->age << std::endl;

}

// 修改学生信息

studentVector[0].age = 21;

// 删除学生信息

studentVector.erase(studentVector.begin() + 1);

// 输出修改后的学生信息

for (std::vector::iterator it = studentVector.begin(); it != studentVector.end(); ++it) {

std::cout << "Name: " << it->name << ", Age: " << it->age << std::endl;

}

return 0;

}

```

以上的示例代码演示了如何使用vector来存储学生对象,并实现了添加、修改和删除学生信息的功能。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(9) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部