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

- 上一篇:笔记本hs和h
- 下一篇:迭代器到底是什么?为什么还有类型?