Вы можете конвертировать 1d вектор в 2d вектор, хранящий ссылки элемента.Единственным недостатком такого решения является то, что вам не разрешено играть с этим 1d-вектором, пока вы не закончите редактирование, в других местах все может сломаться.
Вот пример:
TableEditDialog(std::vector<double> & data) {
std::vector<std::vector<std::reference_wrapper<double>>> result(data.size());
std::transform(data.begin(), data.end(), result.begin(), [](double& d) {return {{d}};});
}
Хотя,Я не проверял это, и, возможно, вам нужно использовать {{std::forward(d)}}
в лямбда-выражении.
Единственная проблема заключается в том, что у вас другое определение m_data, но та же семантика доступа, поэтому вам нужно либо использовать шаблонный кодчтобы получить к нему доступ или использовать std :: option.