vector数组如何删除第一个元素
时间: 2024-05-08 20:22:10 浏览: 68
如果是使用 vector 容器,可以使用 erase() 函数来删除第一个元素,具体操作如下:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums{1, 2, 3, 4, 5};
nums.erase(nums.begin()); // 删除第一个元素
for (auto num : nums) {
std::cout << num << " "; // 输出:2 3 4 5
}
return 0;
}
```
我们使用 erase() 函数,传入容器的起始迭代器即可删除第一个元素。需要注意的是,这个操作会使得后面的元素向前移动,可能会影响到后续的操作。
相关问题
假设vector数组有n个元素,如何删除其中一个元素后,使数组的元素数量变为n-1 c++
可以使用vector的erase()函数删除指定位置的元素。该函数会将vector的size减1,并且将指定位置后面的元素向前移动一个位置,使数组的元素数量变为n-1。具体代码如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {1, 2, 3, 4, 5}; // 原本有5个元素的数组
int pos = 2; // 假设要删除第3个元素(下标从0开始)
arr.erase(arr.begin() + pos); // 删除指定位置的元素
cout << "数组大小为:" << arr.size() << endl; // 输出数组的大小,结果为4
return 0;
}
```
输出结果为:数组大小为:4
删除vector数组中的空元素
您可以使用`erase-remove`的组合来删除`vector`数组中的空元素。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> myVector = {"", "Hello", "", "World", ""};
// 使用erase-remove组合删除空元素
myVector.erase(std::remove(myVector.begin(), myVector.end(), ""), myVector.end());
// 打印删除空元素后的数组
for (const auto& element : myVector) {
std::cout << element << " ";
}
return 0;
}
```
上述代码中,我们首先定义了一个`std::vector<std::string>`类型的数组`myVector`,其中包含了一些空字符串元素。然后,我们使用`std::remove`函数将数组中的空字符串移动到数组的末尾,并返回指向第一个被移除元素的迭代器。最后,我们使用`erase`函数将末尾的空字符串元素从数组中删除。输出结果将是不包含空元素的数组。
请注意,这里假设您的数组存储的是字符串类型。如果您的数组存储的是其他类型的数据,需要相应地修改代码。
阅读全文