私は C++ の初心者で、STL ライブラリのすべての概念を理解していないので、ご容赦ください。ソートされたベクターで lower_bound を見つけるために、次のコード スニペット (下に貼り付け) を作成しました。このコードはリリース モードでは問題なく動作しますが、デバッグ モード (VStudio-8) ではアサートします。これはless_equal<int>
厳密に弱い順序付けではないためだと思います。
次のスレッドから: stl の順序付け - 厳密な弱い順序付け
STLによって弱い順序付けが課されていることはある程度理解していますが、その理由はまだよくわかりません。
以下の私の場合less_equal<int>
、ソートされたベクトルで特定の値に最も近い要素を見つけようとしているので、使用する必要があります。
以下のコード スニペットは有効ですか? また、それを行うより良い方法はありますか?また、正確に何が弱く、部分的な順序であるかについての洞察/参照も役立ちます。
int main() {
vector<int> dest;
for(int i = 0;i <6;i++) {
dest.push_back(i);
}
vector<int>::iterator i =
std::lower_bound(dest.begin(),dest.end(),4,less_equal< int >());
return 1;
}