Конвертировать 2D вектор в 2D QVector C++
В настоящее время я работаю над проектом на C++ и использую Visual Studio 2010 Express вместе с Qt Creator 5.3.2. для графического интерфейса приложения.
Моя проблема в том, что я хочу преобразовать 2D вектор в 2D QVector, и я действительно не знаю, как это сделать. Я использовал, например, fromStdVector() для преобразования 1D вектора в 1D QVector, но я не могу успешно перенести данные из 2D вектора в 2D QVector (с этой функцией). Если бы кто-нибудь мог помочь, я был бы очень признателен.
Исходный код:
QVector< QVector<double> > test2D; // 2D QVector
vector < vector<double> > std_test2D; // 2D vector
test2D.resize(20); // dimensions of the 2D QVector
for(int i=0; i<20; ++i)
{
test2D[i].resize(44);
}
std_test2D.resize(20); // dimensions of the 2D vector
for(int i=0; i<20; ++i)
{
std_test2D[i].resize(44);
}
for(int i=0; i<20; i++) // convert vector to QVector???
{
test2D[i].fromStdVector(std_test2D[i]);
}
2 ответа
Решение
Вы не присваиваете значение. Я думаю, что это должно работать, используя пример кода из документации:
test2D[i] = QVector<double>::fromStdVector(std_test2D[i]);
Вы можете попробовать следующее:
for(int i = 0; i < 20; i++)
{
QVector v = QVector<double>::fromStdVector(std_test2D[i]);
test2D[i].push_back(v);
}