誰かが任意の数の値を入力できるように、「>>」演算子をオーバーロードしようとしています。
これは、私が取り組んでいる課題からの要件の逐語です。
Operator>> は、次の形式の入力を期待する必要があります: d v1 v2 … vd 。ここで、d はベクトルの次元であり、各 vi はベクトル内のインデックス i に対応する値です。
最初の値は配列のサイズ (オブジェクト Vex に含まれる) で、残りは要素になると思います。だから彼らが入力した場合
Vex vX;
4, 1, 2, 3, 4 >> vX;
vX は、1 ~ 4 の数値を含むサイズ 4 の動的配列を作成します。
私がハングアップしている主な部分は、可変数の引数があるため、>> オーバーロードをどのようにプログラムするかです。
理想的には、...の影響に対する解決策があります(これは単なる例です):
std::istream& Vex::operator>>(istream& is, const Vex&){
/*
Assume int * data has been previously declared in constructor
data = new int[iterator[0]]
create iterator of input for istream
For n from 1 to iterator[0]...
data[n] = iterator[n]
*/
}
私はそれを行う方法を正確に知りません。私は周りを見回しており、istream_iterator を見つけましたが、必要な方法で誰かがそれを使用している良い例を見つけることができません。
私が提供した情報が質問に答えるのに十分であることを願っています. そうでない場合はお知らせください。
どうぞよろしくお願いいたします。