[英]Use of reference in C++11 for
我承认我的C ++技能有点生疏,我正在潜入C ++ 11,开始我即将开始的新项目。 如果我写的话,我刚刚发现了这种令人困惑的行为
void MyClass::update() {
for(SomeClass &i : _list) {
i.doStuff();
}
}
要么
void MyClass::update() {
for(SomeClass i : _list) {
i.doStuff();
}
}
它似乎完全相同, _list
是一个std::list<SomeClass>
。 所以我想知道这里使用的是什么,因为我显然遗漏了一些东西。 我应该提到我正在使用Xcode 4.4.1(4F1003)附带的Apple LLVM 4.0。
如果这是一个非常愚蠢的问题,请随意嘲笑和取笑我,我真的可以使用一些好的头部拍打:)
引用与容器无关,但与您正在取出的元素无关。 在第一种情况下,您正在访问列表中的元素并对其进行修改,在第二种情况下,您将复制该元素,然后更改副本,无论如何都会超出范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.