如何在C++中处理repeated元素

   2024-09-30 2930
核心提示:在 C++ 中,处理重复元素的方法有很多种使用标准库容器(如 std::vector、std::set、std::multiset):#includeiostream#include

在 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;}

这些方法都可以用于处理重复元素,你可以根据实际需求选择合适的方法。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号