我幾乎從來沒有把++或 - 放在任何地方,除了它自己的路線。我知道他們可能會導致未定義的行爲,並可能是地獄調試。但爲了冗長的目的,我很想動。這是有效的代碼嗎?在賦值有效的C++的右側使用了一個predecrement運算符?
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-()
定義雙向迭代器不具備的。
謝謝!
如果您不確定操作順序 - 使用更多括號 – Ulterior 2012-04-13 17:58:33