动态插入和删除整数

insert and delete integers on the fly

本文关键字:整数 删除 插入 动态      更新时间:2023-10-16

我是C++新手,我想知道您将如何从数组中即时插入和删除项目。例如:

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

目前我对任何图书馆都不感兴趣,我只想掌握C++的基础知识。我还应该提到,数组一开始就没有值。

由于您对 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 numbern";
        cout<<"2. delete numbern";
        cout<<"3. display memoryn";
        cout<<"anything else to exitn";
        cin>>choice;
        switch(choice)
        {
        case 1:
            if(index==10)
            {
                cout<<"no more space availablen";
            }
            else
            {
                cout<<"enter number: ";
                cin>>num;
                arr[index++] = num;
            }
            break;
        case 2:
            if(index==0)
            {
                cout<<"memory emptyn";
            }
            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);
}

使用 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,如您的示例所示。

看看

std::vector

std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
arr.pop_back();

在C++的基础知识中,没有这样的事情,你必须使用库(当然,或者编写自己的库(。每个C++实现获得的标准库都有一个名为 std::vector 的类,它可以执行您想要的操作。

#include <vector>
int main()
{
    std::vector<int> a;
    a.push_back(1);
    a.push_back(2);
    a.pop_back();
}