私はオブジェクトの内部にフィールドとしてペアのベクトルを持っています。このオブジェクトには、ベクトルのペアの値にアクセスする必要があるメソッドがあります。私はアクセスしたいベクトル内の場所を指すイテレータを使用しています。私はこれを実行しかしペアのベクトルで値にアクセスする際に問題が発生する
double x = headingTo->first - positionX;
double y = headingTo->second - positionY;
を:ヘッダファイルで
:
vector<pair<double, double> > points;
vector<pair<double, double> >::iterator headingTo;
コンストラクタで:
points.push_back(make_pair(1700.00, 3300.00));//Plus 20 or so other values
headingTo = points.begin();
方法で、ここでベクトルを含むコードの断片でありますコードyは作成されていません。変数を見るためにブレークポイントを使用するとVisual Studioには表示されません。しかし、もし私が行を交換すると、yはアクセス可能であり、xはそうではありません。何か案は?
編集: 私は、次の作品を見つけた:
double headingToX = headingTo->first;
headingToX -= positionX;
double headingToY = headingTo->second;
headingToY-= positionY;
コードはg ++でうまく動作します。 「yは作成されていません」と言ったら、どういう意味ですか?後で 'y'を参照すると、コンパイラはそのような変数が定義されていないと不満を持ちますか? – Beta
コードが正しいように見えるので、おそらくデバッガの問題です。そのため、デバッガは2番目のペア要素を解決できません。 coutで値を印刷するとどうなりますか?そして、2行目以降のデバッガを停止しますか? – bjhend
2行目の後にデバッガを停止します。 x VS上にマウスを置くと値がわかりますが、yの上にマウスを置くと何も起こりません。 VSはまた、私にすべてのローカル変数のリストを示し、yを表示せずにxを表示します。 yがxの前に初期化されると、逆の場合もあります。 – Connel