c++ 剔除vector值
时间: 2023-10-15 15:24:03 浏览: 90
C++中vector和map的删除方法(推荐)
在C++中,可以使用STL中的unique函数来剔除vector中的重复元素。这个函数只适用于已经排序(升序或降序)的vector。
以下是剔除vector值的方法:
1. 首先,对vector进行排序,可以使用sort函数。
2. 然后,使用unique函数来去除重复的元素。它会将重复的元素移动到vector的末尾,并返回一个指向新的逻辑尾部的迭代器。
3. 最后,使用erase函数来删除重复元素后面的所有元素。
下面是一个示例代码片段:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec {1, 2, 3, 2, 4, 3, 5, 6, 4};
// 对vector进行排序
std::sort(vec.begin(), vec.end());
// 使用unique函数去除重复元素
auto last = std::unique(vec.begin(), vec.end());
// 使用erase函数删除重复元素后面的所有元素
vec.erase(last, vec.end());
// 输出剔除重复元素后的vector值
for (auto& num : vec) {
std::cout << num << " ";
}
return 0;
}
```
输出结果为: 1 2 3 4 5 6,即剔除了重复的元素。<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/zfjBIT/article/details/125217397)[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/Bob__yuan/article/details/88379557)[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 ]
阅读全文