2015-04-29 85 views
0

消失我有QMapQVector內:值從QVector

QMap<QString, QMap<QGraphicsView*, QVector<float>>> graphs; 

我試圖執行此代碼:

QVector<float>* graphValues = &(graphs.values()[i - values.count()].values()[0]); 

graphValues->push_back(1234); 

qDebug() << "=== Debug messages ===\r\n"; 
qDebug() << "i - values.count() = " << i - values.count(); 
qDebug() << "graphValues = " << graphValues; 
qDebug() << "*graphValues = " << *graphValues; 
qDebug() << "graphs = " << graphs; 
qDebug() << "graphs.values()[i - values.count()].values()[0] = " << graphs.values()[i - values.count()].values()[0]; 

它給我的輸出:

i - values.count() = 0 
graphValues = 0x2000e90 
*graphValues = QVector(1234) 
graphs = QMap(("tempgraph", QMap((QGraphicsView(0x1fb1920) , QVector())))) 
graphs.values()[i - values.count()].values()[0] = QVector() 

那麼,我的價值在哪裏?使用指針我等待我的價值graphs,但它消失。

+0

什麼是values.count中的'values'? – Michael

+0

現在是'count()'='i'的其他'QMap'。 – Efog

回答

5

QMap::values()方法返回臨時對象。您無法通過更改原始數據來更改它。你應該使用迭代器,或者以某種方式使用QMap::operator[]

+0

非常感謝!使用'QGraphicsView *'作爲關鍵我成功地做到了。 – Efog

+0

我認爲如果將'地圖內的地圖'中的矢量移動到類中,它會更好,更具可讀性(還有更多OO)。但是如果你想這樣,那麼答案是正確的。 –