问题定义
情景说明,在使用c++ 20特性并进行2个数组merge的操作
#include <iostream>
#include <algorithm>
#include <iterator>
int main() {
std::cout << "Hello, World!" << std::endl;
int a1[] = { 9, 1, 3, 4, 5, 8, 7 };
int a2[] = { 3, 2, 6, 7, 3, 0, 1 };
std::merge(std::begin(a1), std::end(a1), std::begin(a2), std::end(a2),
std::ostream_iterator<int>(std::cout, " "));
return 0;
}
报了 sequence not ordered的问题
问题解决
对需要操作的数组需要先进行排序
#include <iostream>
#include <algorithm>
#include <iterator>
int main() {
std::cout << "Hello, World!" << std::endl;
int a1[] = { 9, 1, 3, 4, 5, 8, 7 };
int a2[] = { 3, 2, 6, 7, 3, 0, 1 };
std::sort(std::begin(a1), std::end(a1));
std::sort(std::begin(a2), std::end(a2));
std::merge(std::begin(a1), std::end(a1), std::begin(a2), std::end(a2),
std::ostream_iterator<int>(std::cout, " "));
return 0;
}