1

ベクトルがあり、その要素を次の型の関数に渡す必要があります。

bool doIt(MyClass &a);

だから私は後で行う必要があります:

vector<MyClass> v;
doIt(v[2]);

私はそれを正しく行っているかどうかわかりません...

4

6 に答える 6

5

私はそれを正しく行っているかどうかわかりません...

はい、サンプルコードではベクトルに要素が含まれていないため、インデックス2が範囲外であり、次の式であることを除いて、正しく実行しています:v

v[2]

未定義の動作が発生します。ただし、これを修正するにはこれで十分です(MyClassデフォルトで構築可能な場合):

vector<MyClass> v(3);
//                ^
//                Creates a vector of 3 default-constructed 
//                elements of type MyClass
doIt(v[2]);
于 2013-06-26T17:50:46.683 に答える
1
doIt(v[2]);

が有効なインデックスである場合、それは完全に正しい2です (つまり、 より小さいことを意味しますv.size())。参照によって引数を渡します。

于 2013-06-26T17:50:39.613 に答える