Planned maintenance: From Sunday 8th December 10:00 CET there will be changes to try and solve the caching issues that have been experienced. If anyone has a problem connecting after this period then please PM @AndyS or any of the moderators.

Връщане на QMap<QString,QString> дава segmentation fault



  • Здравейте!
    Имам няколко класа, като атрибутите им се съхраняват в

    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 например, че не става директната употреба на върнатия обект?