c vector 删除指定元素
时间: 2023-12-23 07:05:05 浏览: 27
你可以使用 `std::remove()` 和 `std::vector::erase()` 来删除 `std::vector` 中的指定元素。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 删除元素 5
vec.erase(std::remove(vec.begin(), vec.end(), 5), vec.end());
// 输出结果
for (auto num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,输出结果为:`1 2 3 4 6 7 8 9 10`。在这个示例中,我们使用 `std::remove()` 将要删除的元素移动到了容器的末尾,并返回一个指向新末尾的迭代器,然后再使用 `std::vector::erase()` 删除末尾的元素。这样就实现了删除指定元素的功能。
相关问题
删除数组中的指定元素C++
要在C++中删除数组中的指定元素,可以使用双指针的方法。首先,我们定义两个指针i和j,初始时都指向数组的开头。然后,我们遍历数组,当遇到目标元素时,将指针j前移一位,跳过目标元素。当遇到非目标元素时,将该元素复制到指针j的位置,并将指针j后移一位。最后,返回指针j的值,即为删除目标元素后的数组长度。
以下是删除数组中的指定元素的C++代码示例:
```
#include <iostream>
#include <vector>
using namespace std;
int removeElement(vector<int>& nums, int val) {
int length = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i != val) {
nums[length = nums[i];
length++;
}
}
return length;
}
int main() {
vector<int> nums = {0, 1, 2, 2, 3, 0, 4, 2};
int val = 2;
int length = removeElement(nums, val);
cout << length << endl;
for (int i = 0; i < length; i++) {
cout << nums[i << endl;
}
return 0;
}
```
这段代码首先定义了一个函数`removeElement`来删除数组中的指定元素。然后,在`main`函数中调用该函数,并打印删除指定元素后的数组长度以及数组的内容。
请注意,这段代码使用了`vector`容器来存储数组,因为`vector`可以动态调整大小。如果想直接使用普通数组,请根据引用提供的C代码进行修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++:移除数组中的指定元素](https://blog.csdn.net/qq413886183/article/details/116146169)[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%"]
- *3* [删除数组中的指定元素——C++实现](https://blog.csdn.net/ling08140814/article/details/106398785)[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++中的`vector`是一个动态数组,提供了一系列的方法来方便地操作数组。下面是一些常见的`vector`用法:
1. 包含头文件:首先,你需要包含`<vector>`头文件。
```cpp
#include <vector>
```
2. 声明和初始化:可以使用下面的方式声明和初始化一个`vector`。
```cpp
std::vector<int> vec; // 声明一个空的vector
std::vector<int> vec = {1, 2, 3}; // 声明并初始化一个包含元素的vector
std::vector<int> vec(5); // 声明一个包含5个默认初始化元素的vector
```
3. 访问元素:可以使用下标运算符或者迭代器来访问`vector`中的元素。
```cpp
int element = vec[2]; // 使用下标访问元素
int element = vec.at(2); // 使用at()函数访问元素
```
4. 添加和删除元素:可以使用`push_back()`函数将元素添加到`vector`的末尾,使用`pop_back()`函数删除末尾的元素。
```cpp
vec.push_back(4); // 在末尾添加元素
vec.pop_back(); // 删除末尾的元素
```
5. 插入和删除元素:可以使用`insert()`函数在指定位置插入元素,使用`erase()`函数删除指定位置的元素。
```cpp
vec.insert(vec.begin() + 2, 5); // 在指定位置插入元素
vec.erase(vec.begin() + 1); // 删除指定位置的元素
```
6. 获取大小和遍历:可以使用`size()`函数获取`vector`的大小,使用循环或者迭代器遍历`vector`中的元素。
```cpp
int size = vec.size(); // 获取vector的大小
for (int i = 0; i < vec.size(); i++) {
int element = vec[i];
// 处理元素
}
for (auto it = vec.begin(); it != vec.end(); ++it) {
int element = *it;
// 处理元素
}
```
这些只是`vector`的一些基本用法,`vector`还有很多其他方法可以使用。你可以查看C++标准库的文档或者参考相关教程来了解更多详细的用法。