Folgender Konflikt: C/C++ Einteiger versucht std::map zu benutzen
zu den Details:
ich hätte gerne ein map:
typedef map<int, char *> cDMap;
deklariert wird es:
cDMap datamap;
Nach meinem Verständnis müsste ich dann doch im Code
datamap[id] = strdup(value);
verwenden können ?
...
aus der .h
Code
using namespace std;
typedef map<int, char *> cDMap;
class cDataMap {
private:
int read_xml_file(char s);
void processData(xmlTextReaderPtr reader);
public:
cDataMap(char s);
~cDataMap();
cDMap datamap;
char *GetStr(int dataid);
Alles anzeigen
innderhalb der processDatabenutze ich dann
datamap[epgdataid] = strdup(value);
Was
Code
datamap.c: In member function 'void cDataMap::processData(xmlTextReader *)':
datamap.c:57: error: no match for 'operator=' in '((cDataMap *)this)->cDataMap
::datamap. map<int, vector<char *> >::operator[](
((const int &)((const int *)(& epgdataid)))
) = strdup(((const char *)value))'
datamap.c: In member function 'char * cDataMap::GetStr(int)':
und return datamap[dataid]; ergibt.
Warum gräbt er hier nen Vector aus ?