我正在阅读的书提供了一个示例,用于迭代遍历
假设v被声明为
在任何情况下使用
为什么?
vector
。for (auto &e: v) {
cout << e << endl;
}
假设v被声明为
vector<int> v
,换句话说,我们知道这个集合中的元素类型是int
。在任何情况下使用
auto
是否更好或更受欢迎?for (int &e: v) {
cout << e << endl;
}
为什么?
int&
不能从float&
中设置而不是默默地接受本应与整数一起工作的代码...并不是说int&
是更好的选择,这完全取决于你在for
循环主体中做什么,如果不依赖于确切类型,则使用auto
会更好。 - David Rodríguez - dribeasauto&
就可以了...但是我还不太习惯类型不明确的情况 :)(除非我真的不想知道!) - David Rodríguez - dribeasAnimal*
,但你却像它是Animal
一样访问它) - David Rodríguez - dribeas