【问题标题】:Use of reference in C++11 for在 C++11 中使用参考
【发布时间】:2012-09-16 08:28:45
【问题描述】:

我承认我的 C++ 技能有点生疏,我正在为即将开始的新项目投入 C++11。我刚刚发现了这种令人困惑的行为,如果我写了

void MyClass::update() {
    for(SomeClass &i : _list) {
        i.doStuff();
    }
}

void MyClass::update() {
    for(SomeClass i : _list) {
        i.doStuff();
    }
}

它的工作方式似乎完全相同,_liststd::list<SomeClass>。所以我想知道这里的 ref 有什么用,因为我显然遗漏了一些东西。我应该提到我正在使用 Xcode 4.4.1 (4F1003) 附带的 Apple LLVM 4.0。

如果这是一个非常愚蠢的问题,请随意嘲笑和取笑我,我真的可以用一些很好的耳光:)

【问题讨论】:

    标签: c++ reference for-loop foreach c++11


    【解决方案1】:

    引用与容器无关,而与您从中取出的元素有关。在第一种情况下,您正在访问列表中的元素并对其进行修改,在第二种情况下,您制作元素的副本然后更改副本,无论如何这将超出范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      相关资源
      最近更新 更多