4

自分の 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 を使用していることに言及する必要があります。

これが私たちの馬鹿げた質問である場合は、お気軽に私を嘲笑してからかってください。

4

1 に答える 1

4

参照はコンテナとは関係ありませんが、コンテナから取り出す要素とは関係ありません。最初のケースでは、リストにある要素にアクセスしてそれを変更しています。2 番目のケースでは、要素のコピーを作成してからコピーを変更しますが、いずれにせよ範囲外になります。

于 2012-09-16T08:34:57.860 に答える