イテレータに問題があります。C++イテレータエラー
vector<vector<int> >::iterator it = v.begin();
for(; it < v.end(); it++)
{
sort(*it.begin(), *it.end());
}
が間違っている:
vector<vector<int> >::iterator it = v.begin();
for(; it < v.end(); it++)
{
vector<int> var = *it;
sort(var.begin(), var.end());
}
OKと、このコードを使用することです:このコードは、なぜあなたは私を説明してもらえますか?コンパイラによれば、メンバーはまだ始まっていないが、なぜか分からない。
また、最初のループには外的な影響はありません。ベクターをローカルにコピーしてソートしてから、破棄されます。非const参照として 'var'を宣言する必要があります。 –
私はチェックして、それは(参考に)動作します。ありがとう。もう1つの質問。イテレータは非constポインタなので、const参照は使用できません。 'const_iterator'を作ろうとしたとき、コンパイルされませんでした。 sortメソッドが要素を変更しているときに、変数 'var'がベクトルの先頭にある別の要素を指している必要があります(したがってconstにすることはできません)? – JosephConrad