ベクター消去機能がおかしい。私がしたいのは、ベクトルの最初の要素を消去することだけです。
詳細は次のとおりです。cv というオブジェクト ポインターを作成しました。このオブジェクト ポインターのクラス内には、v と呼ばれる整数ベクトルがあります。これには、数値のリストがあります。
このオブジェクト ポインターは、コンベア ベルトの影響を再現するためのものです。私がやりたいことの1つは、ベルトを前進させることです。これは、ベクトルで言えば、一番上の数字を削除することを意味します。
v.erase(v.begin())
これを行うために、ベルトを前進させるメソッドを書きました。しかし、これを実行すると、うまくいきませんでした。ずっと同じものを見ている無限ループに陥ってしまいました。
私はそれから試しv.erase(0)
ましたが、これはまだうまくいきませんでした。範囲から削除しようとしましたが、それでもうまくいきません。奇妙なことに、ベクトルに問題なく追加でき、その中のアイテムを検索できます。削除できないだけです。どんな助けでも大歓迎です。私からさらに情報が必要な場合はお知らせください。
関連するコードを次に示します。
class Belt()
{
vector<int> v;
public:
void MoveBelt();
};
void Belt::MoveBelt()
{
v.erase(v.begin());
}
int main()
{
char filename[256];
Belt *cc = new Belt(filename);
if(condition met)
{
cc->MoveBelt();
}
}
便宜上、ファイルからデータを読み込むコンストラクターも、項目をベクターに追加するメソッドも含めていません。ご覧になり、他に必要なものがあればお知らせください。