C++ vector删除首尾元素
时间: 2024-08-15 12:02:42 浏览: 69
在C++中,`std::vector`是一个动态数组容器,可以方便地在两端添加或删除元素。如果你想删除`vector`的首尾元素,有两种常用的方法:
1. **使用pop_back()和pop_front()**:
- `pop_back()`用于删除最后一个元素,不会改变其他元素的位置。
- `pop_front()`用于删除第一个元素,同样不会影响其他元素。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除最后一个元素
vec.pop_back();
// 删除第一个元素
vec.pop_front();
```
2. **使用erase()函数**:
- 可以直接指定要删除的位置,例如删除第一个元素:
```cpp
vec.erase(vec.begin()); // 删除第一个位置的元素
```
- 如果你知道要删除元素的具体值,可以先用`std::find()`找到该元素的位置再调用`erase()`:
```cpp
auto it = std::find(vec.begin(), vec.end(), value_to_remove);
if (it != vec.end()) {
vec.erase(it);
}
```
记得在操作后调整元素的索引,如果需要的话,因为已删除的元素会被后面的元素替换。
相关问题
c++ vector .get
引用:在C++的标准模板库(STL)中,vector是一种动态数组容器。它提供了一组构造函数,用于创建不同类型和大小的vector对象。 引用:vector容器的使用方法是通过包含头文件<vector>来引入vector类。可以使用不同的构造函数来创建vector对象,如空的vector、指定大小的vector、使用其他vector来初始化的vector等。 引用:在vector容器中,可以使用[]运算符来获取元素,且vector和deque都支持这种操作。一般情况下,vector更适合在中间插入和删除元素,而deque更适合在首尾两端进行插入和删除元素操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [C++ Vector总结](https://blog.csdn.net/weixin_43892514/article/details/104233686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [C++ vector用法详解](https://blog.csdn.net/zhanghaijun2013/article/details/105657663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
c++中{}vector
在C++中,`std::vector` 是一个非常灵活和强大的容器,属于标准模板库(STL)的一部分。`std::vector` 表示一个可以动态改变大小的数组,它能够存储任何类型的元素,并且可以随时通过添加或删除元素来调整其大小。
`std::vector` 的主要特性包括:
1. 随机访问:可以使用下标操作符 `[]` 来访问任何一个元素。
2. 自动管理内存:当你添加元素时,`std::vector` 会自动分配所需的内存,并在元素被删除时释放内存。
3. 动态扩容:当现有的空间不足以存储更多元素时,`std::vector` 会自动扩容,通常会创建一个新的更大的数组,将旧数组的内容复制到新数组中,然后释放旧数组的空间。
4. 插入和删除操作:提供了多种方法来在特定位置插入新元素或删除现有元素。
5. 范围构造和赋值:可以通过范围构造函数和赋值操作符来从一段范围构造一个新的 `std::vector` 或赋值给一个已存在的 `std::vector`。
6. 元素访问:除了下标操作符外,还可以使用 `at()` 方法进行安全访问,以及使用 `front()` 和 `back()` 方法来访问首尾元素。
使用 `std::vector` 时需要包含头文件 `<vector>`,例如:
```cpp
#include <vector>
int main() {
std::vector<int> vec; // 创建一个int类型的vector容器
// 添加元素
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 访问元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << std::endl;
}
return 0;
}
```
阅读全文