2

对于迭代器,我看到了一些代码使用

(*iterator).first

但我想我可以使用以下

iterator->first

使用一个比另一个有什么优势?哪个更好?

4

3 回答 3

2

使用这些语句中的任何一个都没有优势,它们都将编译为完全相同的机器代码。

然而,我会说第二个稍微清楚一点,但这只是个人喜好。

于 2013-06-16T09:22:12.150 回答
1

可读性。

第二个(对我来说恕我直言)更具可读性。

于 2013-06-16T11:00:41.573 回答
0

每当您有多个指向彼此的指针并且最后一个指向您需要的对象时,第二个(作为语法)的优点可能会被强调。那么代码p1->p2->obj就更清楚了(*(*p1).p2).obj。想象一下当你有 3 个或更多指针时做参考。它也是出现语法错误的理想场所。如果有人阅读了您的代码(甚至是您),那么每当您使用运算符编写代码时,您都会清楚地知道您在做什么->

于 2013-06-16T10:57:17.203 回答