私は学生で、まだベクトルを教えられていませんが、今すぐ使用する必要があります。構造体のベクトルを作成しようとしています。構造体は、アセンブリ コードのラベルです。ラベルを追加するたびにベクトルのサイズを変更しますが、ラベルから情報を取得しようとすると、それらはすべて同じです。残念ながら実際にコードを共有することはできませんが、この問題を解決するために必要な行を示します。それで、私は何を間違っていますか?さらにコードが必要な場合は、お知らせください。
グローバルに宣言:
vector<Label> labeldir;
ベクトルのサイズを変更し、情報を追加します。label は、アセンブリ コードのファイル内のラベルの名前です。
labeldir.resize(labelnum + 1);
labeldir[labelnum].name = label;
注: これは while ループで実行されており、ラベルが見つかるたびに labelnum がインクリメントされます。
各ラベルの名前にアクセスする例:
for (int i = 0; i < labeldir.size(); i++){
cout << "Label entry " << i << " name : " << labeldir[i].name << endl;
}
対応する出力で、問題に注意してください (上記のコードは while ループ内にあり、これは 3 回繰り返されます)。
Label entry 0 name : start
Label entry 0 name : done
Label entry 1 name : done
Label entry 0 name : five
Label entry 1 name : five
Label entry 2 name : five
アセンブリ コードの最初の 3 つのラベル。最初のラベルと 2 番目のラベルの間に行がありますが、通常の命令です。
start add 1 2 1 decrement reg1
done halt end of program
five .fill 5