Конвертировать 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);
}
Другие вопросы по тегам