使用一个东西,不明白它的道理,不高明
——侯捷老师
1. 函数声明
// default(1)
template<class BidirectionalIterator>
void inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidrectionalIterator last)
// custom(2)
template<class BidirectionalIterator, class Compare>
void inplace_merge(BidirectionalIterator first, BidirectionalIterator middle,
BidirectionalIterator last, Compare comp)
2. 注意事项
- 传入的两个序列必须是有序的
3. 示例程式
bool mycomp(int i, int j) {
return i < j;
}
void test_inplace_merge() {
int arr1[] = {1,2,3,4,5};
int arr2[] = {2,3,4,5,6};
vector<int> vec(10);
std::sort(arr1, arr1+5);
std::sort(arr2, arr2+5);
auto it = std::copy(arr1, arr1+5, vec.begin());
std::copy(arr2, arr2+5, it);
std::inplace_merge(vec.begin(), vec.begin()+5, vec.end(), mycomp);
// std::sort(vec.begin(), vec.end());
cout << "vec contains: ";
for (auto &x : vec) {
cout << x << " ";
}
cout << endl;
}
4. 疑惑的地方
如上述程序,mycomp用不好,还不清楚如何使用的,待后续...
5. 参考链接
https://blog.csdn.net/ruan875417/article/details/46004869
http://www.cplusplus.com/reference/algorithm/inplace_merge/