++ や -- は、それ自体の行以外にはほとんど入れません。それらが未定義の動作につながる可能性があり、デバッグにとって地獄になる可能性があることはわかっています。しかし、冗長な目的のために、私は誘惑されます。これは有効なコードですか?
map<int, int> dict;
...
int key = ...;
if (dict.lower_bound(key) != dict.begin()) {
int prevval = (--dict.lower_bound(key))->second;
...
}
やりたいだけ
int prevval = (dict.lower_bound(key)-1)->second;
operator-()
ただし、双方向イテレータは定義されていません。
ありがとう!