繁体   English   中英

在C ++ 11中使用引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM