[c++] qt zapis mapy do pliku

0

Witam
sa to moje poczatki z QT i nie bardzo wiem co robie nie tak otoz chce zapisac i odczytac mape do pliku postepuje zgodnie z przykladem z manuala i powiadamia mnie ze nie mam operatora >> dla mojego strumienia odczytu oto kod

void nodeContainer::saveData(){
    QFile plik("/home/mahomet/Projekty/PTD/PTD/ala");
    QMap<char,int> mapa;
    fillMap(mapa);
    if(!plik.open(QIODevice::WriteOnly)){
        std::cerr<<"Cannot Open File in /home/mahomet/Projekty/PTD/PTD/ala"<<endl;
        return;
    }

    QDataStream data(&plik);
    data.setVersion(QDataStream::Qt_4_3);

    data<< mapa;

    plik.close();
}

void nodeContainer::fillMap(QMap<char,int>& mapa){
    list<charNode *>::iterator it;

    for(it = storedData.begin();it!=storedData.end();it++){

        mapa.insert((*it)->getCharVal(),(*it)->getVal());

    }
}
void nodeContainer::getData(){
    QFile plik("/home/mahomet/Projekty/PTD/PTD/ala");
    QMap<char,int> mapka;
    reset();
    if(!plik.open(QIODevice::ReadOnly)){
            std::cerr<<"Cannot open File /home/mahomet/Projekty/PTD/PTD/ala : Operation aborted"<<endl;
            return;
    }
    QDataStream data(&plik);
    data.setVersion(QDataStream::Qt_4_3);
    data >> mapka;

}

Pozdrawiam

Moze to sie przydac przy kompilacji dostaje cos takiego

No match for operator >> in key

Pozniej pozmienialem z int na qint32 w moje mapie ale nie na wiele to sie zdalo

Pozdrawiam

0

szybkie spojrzenie do dokumentacji i widać, że nie ma tam zdefiniowanego operatora zapisu char (dziwne bo taki operator powinien istnieć).
Przedefiniuj tą mapę, by korzystała z QChar, który ma zdefiniowany QDataStream & operator<< ( QDataStream & out, const QChar & chr ).

1 użytkowników online, w tym zalogowanych: 0, gości: 1