【发布时间】:2025-12-05 06:05:03
【问题描述】:
当迭代指针的向量(或其他容器)时,使用:
for (it = v.begin(); it != v.end(); ++it) {
(*it)->method();
}
或
for (it = v.begin(); it != v.end(); ++it) {
(**it).method();
}
【问题讨论】:
-
我看不出一个比另一个有什么特别的优势(无论如何都无法阅读)。
-
选择一个更漂亮的。
-
为什么会有一个指针向量?谁拥有指针(而不是向量)。如果您使用 boost::ptr_vector ,它会获取指针的所有权,但也会将其成员公开为对对象(而不是指针)的引用,因此不需要这种双重取消引用。
-
每个 c++ 问题都会在某些时候带来提升:)。我相信有充分的理由。在这份工作中,我没有可用的提升。
标签: c++ vector iterator dot-operator