zoukankan      html  css  js  c++  java
  • hdu1412

    stl中set的运用,又学到了一个知识点

    /*
     * =====================================================================================
     *
     *       Filename:  hd1412.c
     *
     *    Description:  求两个集合的并集,并顺序输出
     *
     *        Version:  1.0
     *        Created:  2013年09月26日 23时37分20秒
     *       Revision:  none
     *       Compiler:  gcc
     *
     *         Author:  Ni WenXian (hello world~ iam coming), niwenxianq@qq.com
     *   Organization:  AMS/ICT
     *
     * =====================================================================================
     */
     #include <iostream>
     #include <set>
     using namespace std;
     int main(){
    	int m,n,x;
    	set<int> s;
    	set<int>::iterator it;
    	while(cin>>m>>n){
    		s.clear();
    		while(m--){cin>>x;s.insert(x);}
    		while(n--){cin>>x;s.insert(x);}
    		for(it=s.begin();it!=s.end();it++){
    			if(it==s.begin()) cout<<*it;
    			else cout<<" "<<*it;
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    

    如果不用set,自己写起来还真是麻烦. 上面方法还是借用别人的思想

    看来处理这类问题,首先想到的应该是stl


    方法2:

    1.先把所有的数据存储到一个数组中, a[200000]

    2.排序a, 不用去重,这样太麻烦,输出的时候作控制就可以了

    3. 输出, 如果相同的值,就只输一个

    这个还是要用到排序算法

    #include <algorithm>

    sort(a, a+m+n);

    方法3.

    直接用

    set_intersection(),set_union()就行了




    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    AGC算法
    Cordic算法
    git Remote: HTTP Basic: Access denied Git failed with a fatal error.
    mysql 定义用户变量
    Docker 报错处理
    IIS,Docker 部署.Net Core
    SpringBoot向后台传参的若干种方式
    修改Mysql 数据库以及表字符集
    安装Docker
    获取北京时间
  • 原文地址:https://www.cnblogs.com/vintion/p/4117054.html
Copyright © 2011-2022 走看看