当前位置:首页 C++ > 正文

C++std::vector 删除第一个元素

作者:野牛程序员:2023-07-05 07:26:38 C++阅读 3860

要从C++的std::vector中删除第一个元素,您可以使用erase()函数。这个函数接受一个迭代器参数,用于指定要删除的元素的位置。

以下是一个示例代码,演示如何删除std::vector中的第一个元素:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    if (!vec.empty()) {  // 确保向量不为空
        vec.erase(vec.begin());  // 删除第一个元素
    }

    for (const auto& num : vec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

在上面的代码中,vec.erase(vec.begin())用于删除第一个元素。在调用erase()函数之前,我们还通过!vec.empty()检查了向量是否为空,以避免对空向量执行删除操作。

运行上述代码将输出:

2 3 4 5

请注意,如果向量为空,则在调用erase()函数之前,应该先检查向量的大小或使用empty()函数进行检查,以避免无效的操作。


以下是使用C++98语法删除第一个元素的示例代码:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);
    vec.push_back(4);
    vec.push_back(5);

    if (!vec.empty()) {  // 确保向量不为空
        vec.erase(vec.begin());  // 删除第一个元素
    }

    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

在上面的代码中,我们首先使用push_back()函数向向量中添加了一些元素。然后,我们通过vec.erase(vec.begin())删除了第一个元素。最后,我们使用迭代器遍历剩余的元素并打印它们。

请注意,在C++98中,我们使用了std::vector<int>::iterator作为迭代器的类型,以及++it来递增迭代器。

运行上述代码将输出:

2 3 4 5

这样就成功删除了std::vector中的第一个元素。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击