c++ vector删除头元素
时间: 2024-10-13 13:15:18 浏览: 30
在C++中,`std::vector`是一个动态数组,它提供了在运行时添加、删除元素的功能。如果你想删除头元素(即第一个元素),有两种常用的方式:
1. **直接调用pop_back()**:
如果你想保留向量的容量并移除最后一个元素,可以使用`pop_back()`函数。这个操作会将所有后续元素向前移动一位,并不会影响头元素。如果你想直接删除头元素,你应该先检查向量是否为空。
```cpp
if (!vector.empty()) {
vector.pop_back(); // 删除最后一个元素
}
```
2. **使用erase()和begin()方法**:
如果你需要更通用的方法来删除任意位置的元素,可以使用`erase()`函数结合`begin()`迭代器来指定首元素。对于删除头元素,你可以这样做:
```cpp
vector.erase(vector.begin()); // 删除第一个元素(等价于 pop_front())
```
请注意,这两种方法都不会改变向量的大小,只是改变了内部元素的排列。如果你需要减少向量的大小,可以同时调用`resize()`方法。
相关问题
c++ vector 删除元素
在C++中,vector是一个动态数组容器,可以方便地进行元素的插入、删除和访问操作。要删除vector中的元素,可以使用erase()函数或者使用pop_back()函数。
1. 使用erase()函数删除指定位置的元素:
vector提供了erase()函数,可以删除指定位置的元素。该函数接受一个迭代器参数,指向要删除的元素位置。删除后,后面的元素会自动向前移动填补空缺。
例如,要删除vector中的第三个元素,可以使用以下代码:
```
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第三个元素
```
2. 使用pop_back()函数删除最后一个元素:
pop_back()函数用于删除vector中的最后一个元素。该函数不接受任何参数,直接将最后一个元素删除。
例如,要删除vector中的最后一个元素,可以使用以下代码:
```
vector<int> vec = {1, 2, 3, 4, 5};
vec.pop_back(); // 删除最后一个元素
```
需要注意的是,使用erase()函数删除元素时,要确保传入的迭代器指向有效的元素位置,否则可能会导致未定义行为。此外,删除元素后,vector的大小会相应减小。
c++vector删除函数
以下是三种C++ vector删除函数的介绍和示例:
1. vector::clear():清空vector中的所有元素,使其变为空vector。
```c++
vector<int> vec{1, 2, 3, 4, 5};
vec.clear(); // 清空vector
```
2. vector::erase():删除vector中指定位置或指定范围内的元素,返回指向被删除元素之后的迭代器。
```c++
vector<int> vec{1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第3个元素,即3
vec.erase(vec.begin() + 1, vec.begin() + 3); // 删除第2个和第3个元素,即2和4
```
3. vector::pop_back():删除vector末尾的元素,使其size减1,无返回值。
```c++
vector<int> vec{1, 2, 3, 4, 5};
vec.pop_back(); // 删除最后一个元素,即5
```
阅读全文