1
を右辺値にする結合左辺値参照:エラー:私はこの断片を含む私のコードをコンパイルしようと
vector<vector<bool>> p(n);
for(vector<bool>& i : p) {
i = vector<bool>(m);
}
for(vector<bool>& i : p) {
for(bool& j : i) {
int a = round(rand()/double(RAND_MAX));
if(a) j = true;
else j = false;
}
}
はjはので、私はできない右辺値であるというエラーが発生しますその左辺値をバインドします。なぜそれは価値ですか?私が正しく理解していれば、それは表現ではなく、ベクトルiの記憶要素に存在します。さらに、ループを1つだけ使用するとうまく動作します。
私は簡単にループのために正常なとそれを置き換えることができることを知って、私はそれが間違っている理由を理解し、私は値を変更したい場合、私はforループをネストされたC++ 11を使用することができるかどうか知りたいです。
最初のループの目的は何ですか?単純に 'ベクトル> p(n、ベクトル(m));'を実行しないでください。私は[this'std :: vector'リファレンス](http://en.cppreference.com/w/cpp/container/vector)、特に[コンストラクタリファレンス](http://en.cppreference.com/w/cpp/container/vector/vector)(オーバーロード2を参照)。 –
あなたの問題については、代わりに 'auto'を使って型減算を使用してください。 –