阅读量:68
在 C++ 中,处理重复(repeated)数据的一种高效方法是使用标准库中的关联容器和算法
- 使用
std::set或std::unordered_set存储不重复元素:
#include
#include
#include
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9};
std::set<int> unique_numbers;
for (const auto& num : numbers) {
unique_numbers.insert(num);
}
for (const auto& num : unique_numbers) {
std::cout<< num class="hljs-string">" ";
}
return 0;
}
- 使用
std::unique和std::vector删除连续重复元素:
#include
#include
#include
int main() {
std::vector<int> numbers = {1, 2, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 9};
numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end());
for (const auto& num : numbers) {
std::cout<< num class="hljs-string">" ";
}
return 0;
}
- 使用
std::remove_if和自定义谓词删除满足特定条件的元素:
#include
#include
#include
bool is_even(int num) {
return num % 2 == 0;
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
numbers.erase(std::remove_if(numbers.begin(), numbers.end(), is_even), numbers.end());
for (const auto& num : numbers) {
std::cout<< num class="hljs-string">" ";
}
return 0;
}
- 使用
std::count和std::find查找重复元素:
#include
#include
#include
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9};
for (const auto& num : numbers) {
if (std::count(numbers.begin(), numbers.end(), num) > 1) {
std::cout << "Repeated number: "<< num class="hljs-keyword">return 0;
}
这些示例展示了如何在 C++ 中高效地处理重复数据。根据你的需求,可以选择合适的方法来解决问题。