Връщане на QMap<QString,QString> дава segmentation fault
Unsolved
Bulgarian
-
Здравейте!
Имам няколко класа, като атрибутите им се съхраняват вprotected: QMap <QString,QString> attributes;
За достъп до елемент имам функцията
QString getAttribute(QString Aname) const { return attributes.find(Aname).value(); }
която работи, но при опит да ползвам
QMap<QString,QString> getAttributes() const { return attributes; }
Получавам segmentation fault и се чудя какъв е проблемът. Получаване на QVector по този начин няма проблем.
По-точно проблем се появява като ползвам итератор за обхождане на QMap, фунцкията count() връща точния брой елементи.qDebug() << obj.getAttributes().count(); QMap<QString,QString>::itterator it; for ( it = obj.getAttributes().begin(); it!=obj.getAttributes().end();++it) { qDebug() << it.key() << it.value(); // тук гърми }
Ако копирам върнатия QMap във временен QMap обект и използвайки него работи. Каква е разликата с QVector например, че не става директната употреба на върнатия обект?