Добавление нескольких элементов в динамический массив, начиная с заданной позиции. Нужно что бы в ' i ' можно было вместить пару елементов

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(0));
    int N, x, i;
    cout << "Введіть кількість елементів: "; 
    cin >> N;
    cout << '\n';
    int* dar = new int[N];
    int* dar1 = new int[N + 1];
    for (int i = 0; i < N; i++)
    {
        dar[i] = rand() % 99 + 1;
        cout << dar[i] << " ";
    }
    cout << "\n\nВведіть число: "; 
    cin >> i;
    cout << "\nВведіть позицію: ";
    cin >> x;
    cout << "\n";
    dar1[x - 1] = i;
    for (int i = 0; i < N; i++)
    {
        if (i < x - 1)
          dar1[i] = dar[i];
      else
          dar1[i + 1] = dar[i];
    }
    delete[]dar;
    dar = dar1;
    for (int i = 0; i < N + 1; i++)
    {
        cout << dar[i+1] << " ";
    }
    delete[]dar1;
}

Ответы (1 шт):

Автор решения: DmitryK

Либо двумерный массив:

int **mas = new int*[2];
mas[0] = new int[N];
mas[1] = new int[N];
mas[0][i] = 0;
mas[1][i] = 1;

Либо массив из std::pair<int, int> или собственной структуры:

struct MyData
{
  int a;
  int b;
};
MyData mas* = new MyData[N];
mas[i].a = 0;
mas[i].b = 1;
→ Ссылка