2

在使用 C++ 迭代器进行编码时,如果您想获得迭代器指向的前一个值,您会写:

*--Iter

还是您认为像这样添加括号更好:

*(--Iter)

?

4

4 回答 4

7

就程序正确性而言,这并不重要。但我总是这样表达,*(--Iter)因为这比*--Iter.

于 2010-11-28T23:19:43.383 回答
0

为了清楚起见,我会使用后者,但两者都是完全有效且等效的。

注意:如果有任何混淆,该语法不只是获取前一个迭代器的值,它会将迭代器本身向后移动。如果您想在不修改现有迭代器的情况下获取前代迭代器的值,那么您需要一个临时的。

于 2010-11-28T23:17:56.897 回答
0

即使您使其中之一按预期工作,它们也很难阅读。这是否必须在单个语句中完成?

于 2010-11-28T23:18:45.810 回答
0

哪一个都好。使用您需要遵守的任何编码标准所偏好的一种,或者您个人更喜欢的一种。

于 2010-11-28T23:19:10.907 回答