zoukankan      html  css  js  c++  java
  • HDU1412 {A}+{B} 求集合和 STL中unique的使用

    思路

    一开始没有考虑元素是负数的情况,后来知道少考虑一种写法后用了新的方式写,思路不变

    unique的使用

    头文件:#include

    unique的作用是“去掉”容器中相邻元素的重复元素。

    去掉的实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!),比如:

    int num[10]={1,1,2,2,2,3,4,5,5,5};
    int ans=unique(num,num+10)-num;
    

    这时,返回的ans是5,而num中前5项就是1,2,3,4,5,一般使用前需要对容器进行排序,这样才能实现对整个数组去重。

    另:如果要对结构体进行这一操作,需要重载运算符"==",具体要根据自己需要重载。

    AC代码

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int c[22000];
    int main()
    {
        int a,b;
        while(cin>>a>>b)
        {
            memset(c,0,sizeof(c));
            int k=a+b;
            for(int i=0;i<k;i++)
               cin>>c[i];
            sort(c,c+k);
            int ans=unique(c,c+k)-c;
            for(int i=0;i<ans-1;i++)
              cout<<c[i]<<' ';
            cout<<c[ans-1]<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    map
    构造函数和对象
    for...in...and for each...in...
    事件
    JSON
    css伪类
    正则表达式
    什么是DOM、什么是BOM
    CSS颜色
    grid-layout实验
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12650083.html
Copyright © 2011-2022 走看看