std::algorithm
単純な配列でできる限りいつでも使用するのが好きです。今、私には 2 つの疑問があります。std::lower_bound
引数として指定した値が見つからない場合に何が起こるかを使用したいとしますか?
int a[] = {1,2,3,4,5,6};
int* f = std::lower_bound(a,a+6,20);
*f を印刷したときの結果は 20 です。
を使用しても同じことが起こりますstd::find
。
int a[] = {1,2,3,4,5,6};
int* f = std::find(a,a+6,20);
*f を印刷したときの結果は 20 です。
- これが見つからない場合、戻り値は常に元の引数であるということですか?
- バイナリ検索アルゴリズムを実装しているため、パフォーマンスの面では の
std::lower_bound
方が優れています。std::find
配列が大きい場合、たとえば最大 10 要素の場合、std::find のパフォーマンスは向上しますか? 舞台裏で std::lower_bound が std::advance と std::distance を呼び出します。これらの呼び出しも節約できるかもしれません。
どうもありがとう
AFG