0

私は C++ が初めてで、配列からその場でアイテムを挿入および削除する方法を知りたいと思っていました。例えば:

>> insert(1)
[1]
>> insert(2)
[1,2]
>> delete()
[1]

現時点ではどのライブラリにも興味がなく、C++ の基礎を理解したいだけです。また、配列には最初から値がないことにも言及する必要があります。

4

4 に答える 4

3

あなたは STL コンテナーに興味がないので (たとえば、調べてみることをお勧めしますがvector)、必要な最大サイズの配列を宣言します。

int arr[10];

インデックスを使用して配列内の要素にアクセスし、値を割り当てます

arr[0] = 5;   //indexes start from 0 and in this case till 9

または、インデックスの変数を次のように保持します

int index = 0;

挿入中に、次を使用します。

arr[index] = value;
index++;

配列内の要素を使用可能にしながら、インデックスをデクリメントして、後のインデックスが自由に入力できるようにします。

編集:

以下のコードを参照してください。

#include<iostream>
using namespace std;
int main()
{
    int arr[10];
    int choice;
    int num;
    int index = 0;
    do
    {
        cout<<"enter you choice:\n";
        cout<<"1. add number\n";
        cout<<"2. delete number\n";
        cout<<"3. display memory\n";
        cout<<"anything else to exit\n";
        cin>>choice;
        switch(choice)
        {
        case 1:
            if(index==10)
            {
                cout<<"no more space available\n";
            }
            else
            {
                cout<<"enter number: ";
                cin>>num;
                arr[index++] = num;
            }
            break;
        case 2:
            if(index==0)
            {
                cout<<"memory empty\n";
            }
            else
            {
                cout<<"item deleted!\n ";
                index--;
            }
            break;
        case 3:
            for(int i = 0;i<index;i++)
            {
                cout<<arr[i]<<'\t';
            }
            cout<<endl;
            break;
        default:
            cout<<"exiting.......";
        }
    }while(choice>0 && choice<4);
}
于 2013-10-10T05:29:14.380 に答える
0

見てみるstd::vector

std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
arr.pop_back();
于 2013-10-10T05:31:33.737 に答える
0

C++ の基礎では、ライブラリを使用する必要がある (または、もちろん独自のライブラリを作成する) 必要はありません。すべての C++ 実装で得られる標準ライブラリには、必要な処理を実行するクラスstd::vectorが含まれています。

#include <vector>

int main()
{
    std::vector<int> a;
    a.push_back(1);
    a.push_back(2);
    a.pop_back();
}
于 2013-10-10T05:32:55.217 に答える