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()就行了




    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    重载和重写的定义
    方法的重载与重写有什么区别?
    java: while 和do while区别
    java中的运算符
    java 8种基本数据类型
    java.面向对象特征
    java语言的特点
    java.注释类型
    char 和 varchar2 区别
    使用sql对数据库进行简单的增删改查
  • 原文地址:https://www.cnblogs.com/vintion/p/4117054.html
Copyright © 2011-2022 走看看