std::lower_bound、std::upper_boundの関係をイラスト化してみた

ソート済配列に対して2分探索をしたり、昇順(または降順)の状態を維持したまま配列に要素を挿入したいといった場合、C++ではstd::lower_bound や std::upper_boundを活用すると便利ですが、それぞれが返すイテレータがどこを指すのか理解が曖昧だったので、イラスト化してみました。

 

<イラスト>
イメージ 1