Двойной (двумерный) массив с использованием std::unique_ptr

У меня есть двойной массив, выделенный указателем на указатель.

  // pointer to pointer
  int **x = new int *[5];   // allocation
  for (i=0; i<5; i++){
      x[i] = new int[2];
  }

  for (i=0; i<5; i++){      // assignment
      for (j=0; j<2; j++){
          x[i][j] = i+j;
      }
  }

  for (i=0; i<5; i++)   // deallocation
      delete x[i];
  delete x;

Я пытаюсь сделать это, используя unique_ptr:

std::unique_ptr<std::unique_ptr<int>[]> a(new std::unique_ptr<int>[5]);
  for (i=0; i<5; i++)
      a[i] = new int[2];

но продолжал получать сообщение об ошибке, говорящее, что никакой оператор = не соответствует этим операндам . Что я здесь делаю неправильно?

10
задан Ken Y-N 1 March 2016 в 02:34
поделиться