我几乎从不在任何地方放 ++ 或 -- 除了单独的行。我知道它们会导致未定义的行为,并且可能会成为调试的地狱。但出于冗长的目的,我很受诱惑。这是有效的代码吗?
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-()
定义。
谢谢!