1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class B { int val;
public:
B(int v):val(v){}
int getV() const{return val;} bool operator < (const B & v) const {return val<v.val;}};
ostream & operator <<(ostream & out, const B & v) { out<<v.getV(); return out;}
template<class T > struct Out {
ostream & out;
Out(ostream & o): out(o){}
void operator() (const T & val) { out<<val<<" ";}};
int main(){
B t1[]={3,2,4,1,5};
B t2[]={6,10,8,7,9};
vector<B> v1(10);
sort(t1, t1+5);
sort(t2, t2+5);
merge(t1,t1+5,t2,t2+5,v1.begin());
for_each(v1.begin(),v1.end(),Out<B>(cout));cout<<endl;
return 0;
}
|