Я реализую сценарий vector to vector
, в основном матрицу с известными строками и неизвестными столбцами в каждой строке, и я делаю v[a].push_back(b) (treating a & b as ints)
. Как мне объявить вектор v без указания фиксированной длины во время компиляции? Поскольку прямая запись v[a].push_back(b)
дает мне segmentation fault
?
Полный код выглядит следующим образом:
vector<vector<int>> child(n); //O(n) + O(n) space
for (i=0;i<n;i++){
//parent will be b[i] and child will be i
child[b[i]].push_back(i);
}
Идея состоит в том, что будет только O(n) child
, поэтому выделение 2D вектор из n^2
будет пустой тратой места
Горячо приветствуются альтернативные подходы :)