📜  c++ 向量迭代器 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:48.809000             🧑  作者: Mango

C++向量迭代器

在C++中,向量(Vector)是一种动态数组,可以用来存储和管理一组变量。使用向量迭代器可以轻松地访问和操作向量中的数据。

向量基础

在使用向量迭代器之前,我们先来了解一下向量的基础知识。在C++中,使用vector模板来声明一个向量:

#include <vector>

std::vector<int> myVector;

上面的代码声明了一个int类型的向量myVector。向量的元素可以使用push_back()函数添加到向量中:

myVector.push_back(5);
myVector.push_back(10);
myVector.push_back(15);

可以使用下标运算符访问向量中的元素:

int x = myVector[0];  // x = 5
int y = myVector[1];  // y = 10
int z = myVector[2];  // z = 15
迭代器基础

迭代器(Iterator)是STL(Standard Template Library)中的一个重要概念,用于在容器中遍历和访问元素。在C++中,向量迭代器是vector类中的一个内部类,用于遍历和访问向量中的元素。

可以使用begin()函数获取向量的起始迭代器(指向第一个元素),使用end()函数获取向量的终止迭代器(指向向量末尾的下一个位置):

std::vector<int>::iterator itStart = myVector.begin();  // 向量的起始迭代器
std::vector<int>::iterator itEnd = myVector.end();      // 向量的终止迭代器

使用迭代器访问向量中的元素:

for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it)
{
    int value = *it;
    // 处理value
}
迭代器操作

向量迭代器支持各种操作,可以使用它们对向量进行各种操作,包括添加、删除和修改元素。下面是一些最常用的操作:

插入元素

可以使用insert()函数在向量中插入一个或多个元素。insert()函数的第一个参数是迭代器,指示插入位置,后面的参数是要插入的元素:

std::vector<int> myVector;
myVector.push_back(5);
myVector.push_back(10);

std::vector<int>::iterator it = myVector.begin();  // 获得向量的起始迭代器
it += 1;  // 将迭代器移动到第二个元素的位置

myVector.insert(it, 7);  // 在第二个元素的位置插入7
删除元素

可以使用erase()函数删除向量中的一个或多个元素。erase()函数的参数是一个迭代器,指示要删除的元素:

std::vector<int> myVector;
myVector.push_back(5);
myVector.push_back(10);

std::vector<int>::iterator it = myVector.begin();  // 获得向量的起始迭代器
it += 1;  // 将迭代器移动到第二个元素的位置

myVector.erase(it);  // 删除第二个元素
修改元素

可以使用迭代器修改向量中的元素:

std::vector<int> myVector;
myVector.push_back(5);
myVector.push_back(10);

std::vector<int>::iterator it = myVector.begin();  // 获得向量的起始迭代器
it += 1;  // 将迭代器移动到第二个元素的位置

*it = 15;  // 将第二个元素修改为15
总结

向量迭代器可以方便地访问和操作向量中的数据。需要注意的是,当向量中的元素被添加、删除或修改时,向量的迭代器可能会失效,因此要小心使用。