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




    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    UPDATE 时主键冲突引发的思考【转】
    MySQL Sandbox安装使用
    主从复制1062错误解决方法
    InnoDB log file 设置多大合适?
    EXPLAIN 命令详解
    【机器学习】ID3算法构建决策树
    连续属性离散化处理
    【机器学习】决策树基础知识
    【机器学习】模型评估与选择
    【机器学习】单层感知器
  • 原文地址:https://www.cnblogs.com/vintion/p/4117054.html
Copyright © 2011-2022 走看看