用c++实现两个有序(从小到大)顺序表合并成为一个顺序表,合并后的结果放在第一个顺序表中(假设这两个有序顺序表中没有相同的元素)。
求大神带带我啊~。。。。#include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main( void ) { vector<int> a = { 0, 1, 3, 4, 7, 9 }; vector<int> b = { 0, 2, 5, 6, 8, 9 }; vector<int> tmp( a.size()+b.size() ); merge( a.begin(), a.end(), b.begin(), b.end(), tmp.begin() ); swap( a, tmp ); copy( a.begin(), a.end(), std::ostream_iterator<int>(cout,", ") ); }输出
#include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main( void ) { vector<int> a = { 0, 1, 3, 4, 7, 9 }; vector<int> b = { 0, 2, 5, 6, 8, 9 }; vector<int> tmp; tmp.reserve( a.size()+b.size() ); std::set_union( a.begin(), a.end(), b.begin(), b.end(), std::back_inserter(tmp) ); swap( a, tmp ); copy( a.begin(), a.end(), std::ostream_iterator<int>(cout,", ") ); }输出