对于迭代器,我看到了一些代码使用
(*iterator).first
但我想我可以使用以下
iterator->first
使用一个优于另一个的优势是什么?哪个更好?
答案 0 :(得分:2)
使用这些语句中没有任何优势,它们都将编译为完全相同的机器代码。
然而,我会说第二个稍微清楚一些,但这只是个人偏好。答案 1 :(得分:1)
可读性。
第二个(对我来说是恕我直言)更具可读性。
答案 2 :(得分:0)
只要你有几个指向彼此的指针而最后一个指向你需要的对象,第二个(作为语法)的优点可能会加下划线。
代码p1->p2->obj
比(*(*p1).p2).obj
更清晰。想象一下,当你有3个或更多指针时做参考。它也是语法错误的理想之地。
如果有人读取您的代码(甚至是您),那么只要您使用->
运算符编写代码,您就会清楚自己在做什么。