📅  最后修改于: 2023-12-03 15:29:54.613000             🧑  作者: Mango
在 C++ 中,矢量(vector)是一个常用的容器,它可以动态地扩展和收缩,其内部使用动态数组实现元素的存储。在使用矢量时,我们可能需要对其进行擦除和清除操作。本文将介绍 C++ 中的矢量擦除()和清除()两个函数。
矢量擦除()函数vector::erase()
接受一个参数,该参数是一个迭代器,表示要从矢量中删除的元素的位置。在执行擦除操作后,该迭代器将指向删除元素的下一个元素位置。
以下是使用vector::erase()
函数擦除矢量元素的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5, 6};
auto it = v.begin() + 2;
v.erase(it);
for (auto i : v) {
std::cout << i << " ";
}
return 0;
}
输出:
1 2 4 5 6
在上面的代码中,我们首先定义了一个名为v
的矢量,其中包含了整数1
~6
。然后,我们定义了一个迭代器it
,它指向矢量中第三个(从零开始计数)元素的位置。最后,我们使用vector::erase()
函数擦除了该元素,并循环输出了矢量中的所有元素。
需要注意的是,我们在调用vector::erase()
函数时,使用的是迭代器it
,该迭代器指向要删除的元素的位置。在执行完擦除操作后,我们可以通过循环输出矢量中的所有元素来验证删除的正确性。
矢量清除()函数vector::clear()
没有参数,其作用是将矢量中的所有元素移除。执行该操作后,矢量中不再包含任何元素,其大小为零。
以下是使用vector::clear()
函数清除矢量元素的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5, 6};
v.clear();
std::cout << "Size of v after clear(): " << v.size() << std::endl;
return 0;
}
输出:
Size of v after clear(): 0
在上面的代码中,我们首先定义了一个名为v
的矢量,其中包含了整数1
~6
。然后,我们使用vector::clear()
函数清除了该矢量中的所有元素,并输出了该矢量的大小。
需要注意的是,在使用vector::clear()
函数清除矢量中的所有元素后,矢量对象仍然存在,其大小为零。因此,我们可以在清除了矢量元素后,继续向其中添加新的元素。
矢量擦除()和清除()函数是 C++ 中矢量容器的两个常用函数。vector::erase()
函数可以擦除矢量中指定位置的元素,而vector::clear()
函数可以清除矢量中的所有元素。在使用这两个函数时,需要注意其参数的正确性和函数执行后的操作结果。