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 回答
2

使用std::vector.

您可以使用push_back在向量的后面插入并pop_back删除最后一个元素。

一个例子:

#include <vector>
#include <iostream>

int main()
{
    std::vector<int> numbers;
    numbers.push_back(1)
    numbers.push_back(2);
    numbers.pop_back();

    for (int i : numbers) { // c++11 range-based for loop
        std::cout << i << '\n';
    }
}

像您的示例中一样打印 1 。

于 2013-10-10T05:31:56.673 回答
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 回答