如何高效处理C++中的repeated

avatar
作者
筋斗云
阅读量:0

在 C++ 中,处理重复(repeated)数据的一种高效方法是使用标准库中的关联容器和算法

  1. 使用 std::setstd::unordered_set 存储不重复元素:
#include<iostream> #include <set> #include<vector>  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 << " ";     }      return 0; } 
  1. 使用 std::uniquestd::vector 删除连续重复元素:
#include<iostream> #include<vector> #include<algorithm>  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 << " ";     }      return 0; } 
  1. 使用 std::remove_if 和自定义谓词删除满足特定条件的元素:
#include<iostream> #include<vector> #include<algorithm>  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 << " ";     }      return 0; } 
  1. 使用 std::countstd::find 查找重复元素:
#include<iostream> #include<vector> #include<algorithm>  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<< std::endl;         }     }      return 0; } 

这些示例展示了如何在 C++ 中高效地处理重复数据。根据你的需求,可以选择合适的方法来解决问题。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!