簡體   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