两集合的合并
虽然不太熟悉STL
但用STL就很快A了...
主要用到set_union(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<typename> >(c, c.begin()));
set<typename>后一定要加空格...不然会当成位操作符>>...
2010-11-21 22:19:44 Accepted 1412 46MS 1620K 804 B G++ Y
代码
#include <iostream>
#include <set>
#include <iterator>
using namespace std;
/* 输出集合里的元素 */
void output(set<int> &S)
{
int size;
set<int>::iterator it = S.begin();
size = S.size();
while ( size-- )
{
cout << *it;
if ( size )
{
putchar(' ');
}
it++;
}
putchar('\n');
}
int main()
{
int n, m, elem;
set<int> A, B, C;
while (scanf("%d%d", &n, &m) == 2)
{
while ( n-- )
{
scanf("%d", &elem);
A.insert( elem ); /* 装入集合中 */
}
while ( m-- )
{
scanf("%d", &elem);
B.insert( elem ); /* 装入集合中 */
}
/* 集合的合并 */
set_union(A.begin(), A.end(), B.begin(), B.end(),
insert_iterator<set<int> >(C, C.begin()));
/* 输出 */
output( C );
A.clear();
B.clear();
C.clear();
}
}