如何在C++中处理repeated元素
导读:在 C++ 中,处理重复元素的方法有很多种 使用标准库容器(如 std::vector、std::set、std::multiset): #include<iostream> #include<vector> #...
在 C++ 中,处理重复元素的方法有很多种
- 使用标准库容器(如
std::vector
、std::set
、std::multiset
):
#include<
iostream>
#include<
vector>
#include<
algorithm>
int main() {
std::vector<
int>
numbers = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
;
// 对数组进行排序
std::sort(numbers.begin(), numbers.end());
// 删除重复元素
auto last = std::unique(numbers.begin(), numbers.end());
numbers.erase(last, numbers.end());
// 输出结果
for (const auto &
number : numbers) {
std::cout<
<
number <
<
" ";
}
return 0;
}
- 使用
std::unordered_set
或std::unordered_multiset
来存储不重复或可重复的元素。
#include<
iostream>
#include <
unordered_set>
int main() {
std::unordered_set<
int>
numbers = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3}
;
// 输出结果
for (const auto &
number : numbers) {
std::cout<
<
number <
<
" ";
}
return 0;
}
- 使用
std::remove_if
和自定义条件删除重复元素。
#include<
iostream>
#include<
vector>
#include<
algorithm>
bool is_duplicate(int value, const std::vector<
int>
&
numbers, int index) {
for (int i = 0;
i<
index;
++i) {
if (numbers[i] == value) {
return true;
}
}
return false;
}
int main() {
std::vector<
int>
numbers = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3}
;
// 删除重复元素
numbers.erase(std::remove_if(numbers.begin(), numbers.end(), [&
](int value) {
return is_duplicate(value, numbers, std::distance(numbers.begin(), std::find(numbers.begin(), numbers.end(), value)));
}
), numbers.end());
// 输出结果
for (const auto &
number : numbers) {
std::cout<
<
number <
<
" ";
}
return 0;
}
这些方法都可以用于处理重复元素,你可以根据实际需求选择合适的方法。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在C++中处理repeated元素
本文地址: https://pptw.com/jishu/699408.html