首页主机资讯如何在C++中处理repeated元素

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

时间2024-09-14 21:44:04发布访客分类主机资讯浏览1472
导读:在 C++ 中,处理重复元素的方法有很多种 使用标准库容器(如 std::vector、std::set、std::multiset): #include<iostream> #include<vector> #...

在 C++ 中,处理重复元素的方法有很多种

  1. 使用标准库容器(如 std::vectorstd::setstd::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;

}
    
  1. 使用 std::unordered_setstd::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;

}
    
  1. 使用 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
C++ repeated与unique的区别 C++ less与其他语言的比较

游客 回复需填写必要信息