Разыменование итератора C ++ и стиль увеличения / уменьшения префикса?* Хорошо ли мне стиль? - PullRequest
2 голосов
/ 29 ноября 2010

При кодировании с итераторами C ++, если вы хотите получить предыдущее значение, на которое указывает итератор, вы написали бы:

*--Iter

или вам лучше добавить круглые скобки, например:

*(--Iter)

?

Ответы [ 4 ]

7 голосов
/ 29 ноября 2010

Неважно, насколько правильна программа. Но я всегда выражаю это как *(--Iter), потому что это более самодокументировано и легче для понимания людьми, чем *--Iter.

0 голосов
/ 29 ноября 2010

Даже если вы заставите один из них работать так, как вы ожидаете, их будет трудно прочитать.Это должно быть сделано в одном утверждении?

0 голосов
/ 29 ноября 2010

Либо в порядке.Используйте тот, который предпочитается любым стандартом кодирования, который вам нужен, или тот, который вы предпочитаете лично.

0 голосов
/ 29 ноября 2010

Я бы использовал последний для ясности, но оба они полностью действительны и эквивалентны.

Примечание. В случае возникновения путаницы, тот синтаксис не просто получает значение предшествующего итератора, он перемещает сам итератор назад. Если вы хотите получить значение предшествующего итератора без изменения имеющегося у вас, вам понадобится временный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...