標準ライブラリ<br>のinplace_merge()関数
1480 ワード
一つのものを使って、その道理が分からないで、上手ではありません--侯捷先生
1.関数宣言
2.注意事項から送信される2つのシーケンスは、秩序化された でなければならない.
3.プログラムの例
4.疑問点
上記のプログラムのように、mycompがうまく使えないので、どのように使うかまだ分かりません.
5.参照リンク
https://blog.csdn.net/ruan875417/article/details/46004869 http://www.cplusplus.com/reference/algorithm/inplace_merge/
1.関数宣言
// default(1)
template
void inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidrectionalIterator last)
// custom(2)
template
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 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/