Huffman



  • Hi ich muss einen Huffman Baumerstellen und irgendwie schaffe ich das nicht das Histogramm in eine priority queue hinzugfügen. Ich muss das Programm für das schreiben ich arbeite genau nach dem script deswegen komme ich machmal ins stocken

    map< unsigned char, unsigned int > meinegrauwerte = histogram.bins(); //Laedt Histogramm in eine Map
    map< unsigned char, unsigned int >::iterator pos;
    //Temporärer Knoten
    CKnot tempKnot(0,0,NULL,NULL);

    pos = meinegrauwerte.begin();
    int i =0;

    do {
    m_knotQueue.push( CKnot(pos->first, pos->second, NULL, NULL) );
    }

    while (pos[i++] !=meinegrauwerte.end());



  • Abgesehen davon das du hier im Falschen Forum bist und das du keine C++-Tags verwendet hast,(du machst C++ also warum nicht C++ Unter Forum weiter oben?!) schätze ich mal das es hier dran liegen könnte.

    map< unsigned char, unsigned int > meinegrauwerte = histogram.bins(); //Laedt Histogramm in eine Map
    map< unsigned char, unsigned int >::iterator pos;
    //Temporärer Knoten
    CKnot tempKnot(0,0,NULL,NULL);
    
    pos = meinegrauwerte.begin();
    int i =0;
    
    do {
    m_knotQueue.push( CKnot(pos->first, pos->second, NULL, NULL) );
    }
    
    while (pos[i++] !=meinegrauwerte.end()); //warum pos wie ein array nutzen?
    //schalte den iterator doch normal weiter
    
    map< unsigned char, unsigned int > meinegrauwerte = histogram.bins(); //Laedt Histogramm in eine Map
    map< unsigned char, unsigned int >::iterator pos;
    //Temporärer Knoten
    CKnot tempKnot(0,0,NULL,NULL);
    
    pos = meinegrauwerte.begin();
    int i =0;
    
    while (pos++ !=meinegrauwerte.end())
    {
    
       m_knotQueue.push( CKnot(pos->first, pos->second, NULL, NULL) );
    }
    

Log in to reply