C++std::vector 删除第一个元素
作者:野牛程序员:2023-07-05 07:26:38 C++阅读 3985
要从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
- 下一篇:迭代器到底是什么?为什么还有类型?
