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