Я новичок в 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 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);
}
Используйте 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, как в вашем примере.
В фундаментальных принципах C++ нет ничего подобного, вам нужно использовать библиотеку (или, естественно, написать свою собственную библиотеку). Стандартная библиотека, которую вы получаете с каждой реализацией C++, имеет класс std::vector
который делает то, что вы хотите.
#include <vector>
int main()
{
std::vector<int> a;
a.push_back(1);
a.push_back(2);
a.pop_back();
}
взгляните в std::vector
std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
arr.pop_back();