4

次のようなことは可能ですか?

int *iarray = new int[10];
.....
//do something with it
.....

次に、最初の要素を簡単に削除するには、次のようにします。

delete iarray;
iarray++;

( [] なしで)削除すると、配列全体が削除されるようです。可能であれば、最初の要素を削除するのは本当にトリッキーで賢い方法です。このアイデアは私のものではありません。どこかで見たことがありますが、私には合いません。私は何か間違ったことをしていますか?

4

3 に答える 3

5

フロントから要素を削除するには、 dequeを使用します。これが、この構造が考案された目的です。

于 2012-12-03T21:51:42.843 に答える
2

あなたは C++ を書いているように見えますが、その場合、deleteトリックは狂気でひどいものであり、うまくいきません。2 番目の要素へのポインターが本当に必要な場合は、ポインター演算を実行して確かに取得できますが、最初の項目を実際に削除するには、すべてを 1 つ戻す必要があります。

于 2012-12-03T21:50:03.280 に答える
1

それは期待どおりには機能しません。

ここでこの答えをチェックしてください:

delete[] はそれが配列であることをどのように認識しますか?

それはあなたの質問にほとんど答えます。

于 2012-12-03T21:48:49.113 に答える