Iterieren über eine std::map voll von strings in C++

Ich habe Folgendes Problem mit der Iteration über ein assoziatives array von strings definiert mit std::map.

-- snip --
class something 
{
//...
   private:
      std::map<std::string, std::string> table;
//...
}

In den Konstruktor, die ich füllen Sie die Tabelle mit Paaren von string-Schlüssel für string-Daten. Irgendwo anders habe ich eine Methode toString zurückgibt, die ein string-Objekt, das enthält alle Schlüssel und die zugehörigen Daten in der Tabelle enthalten Objekt(key=Datenformat).

std::string something::toString() 
{
        std::map<std::string, std::string>::iterator iter;
        std::string* strToReturn = new std::string("");

        for (iter = table.begin(); iter != table.end(); iter++) {
           strToReturn->append(iter->first());
           strToReturn->append('=');
           strToRetunr->append(iter->second());
           //....
        }
       //...
}

Wenn ich versuche zu kompilieren bekomme ich folgende Fehlermeldung:

error: "error: no match for call to ‘(std::basic_string<char,
    std::char_traits<char>, std::allocator<char> >) ()’".

Könnte jemand mir erklären, was fehlt, was mache ich falsch?
Ich fand nur einige Diskussion über ein ähnliches Problem in dem Fall von hash_map wo der Anwender eine Hash-Funktion nutzen zu können hash_map mit std::string Objekte. Könnte etwas ähnliches auch in meinem Fall?

  • Herzlich willkommen auf stack overflow, Crazybyte. Froh, dass ich helfen konnte
InformationsquelleAutor crazybyte | 2009-06-30
Schreibe einen Kommentar