在C++中,處理重復元素的方法有很多種
#include<iostream>
#include <set>
#include<vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 4, 5, 6, 6, 7};
std::set<int> unique_numbers(numbers.begin(), numbers.end());
for (int num : unique_numbers) {
std::cout<< num << " ";
}
return 0;
}
unique
的算法,它可以移除連續(xù)的重復元素。注意,這個算法只能用于已排序的序列。#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> numbers = {1, 2, 2, 3, 4, 4, 5, 6, 6, 7};
std::sort(numbers.begin(), numbers.end()); // 先對數組進行排序
auto last = std::unique(numbers.begin(), numbers.end()); // 移除連續(xù)重復元素
numbers.erase(last, numbers.end()); // 刪除多余的元素
for (int num : numbers) {
std::cout<< num << " ";
}
return 0;
}
#include<iostream>
#include<vector>
int main() {
std::vector<int> numbers = {1, 2, 2, 3, 4, 4, 5, 6, 6, 7};
for (size_t i = 0; i< numbers.size(); ++i) {
for (size_t j = i + 1; j< numbers.size();) {
if (numbers[i] == numbers[j]) {
numbers.erase(numbers.begin() + j);
} else {
++j;
}
}
}
for (int num : numbers) {
std::cout<< num << " ";
}
return 0;
}
請注意,這些方法在處理大量數據時可能會有性能差異。在實際應用中,你可能需要根據具體情況選擇最合適的方法。