📜  C++中的矢量擦除()和清除()(1)

📅  最后修改于: 2023-12-03 15:29:54.613000             🧑  作者: Mango

C++中的矢量擦除()和清除()

在 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()函数可以清除矢量中的所有元素。在使用这两个函数时,需要注意其参数的正确性和函数执行后的操作结果。