Oppure

Loading
14/03/11 21:26
frank87
Ciao,
volevo sapere se qualcuno sa come accedere a una map interna ad un altra map.
In pratica ho una struttura tipo:
map<int, map<int,string> > Mappa;
Se dichiaro un iteratore tipo:

map<int, map<int,string> > ::iterator it;

riesco a visualizzare l'elemento int della mappa piu esterna,ma non riesco a visualizzare gli elementi della mappa piu interna.
Come posso fare???
grazie in anticipo:k:


io faccio cosi ma da errore:

#include <map>
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main()
{
map< int ,map<int,string> > m;
map<int,string> d;
d[1]="ciao";
d[2]="sono";
d[4]="io";
m[1]=d;

map< int ,map<int,string> > ::iterator it;

map<int,string>::iterator ciao;
it=m.begin();
ciao=it->second->begin(); //MI DA ERRORE QUI

    return 0;
}

L'errore che mi mostra eclipse é:
../src/francesco.cpp:30: error: base operand of ‘->’ has non-pointer type ‘std::map<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >’
make: *** [src/francesco.o] Errore 1

Non riesco a capire bene dove sbaglio.....




Ultima modifica effettuata da frank87 15/03/11 15:01
aaa
14/03/11 23:07
TheKaneB
banalmente map<int, string>::iterator ciao;

it = mappa.begin();
ciao = it->second->begin();


ciao ;)
aaa
15/03/11 11:17
HeDo
come al solito ci vuole la sfera di cristallo...
Ultima modifica effettuata da HeDo 15/03/11 12:04
aaa
15/03/11 11:54
TheKaneB
non esiste "mi da errore".

Il compilatore ti avrà certamente detto per filo e per segno tutto quello che serve per correggere l'errore, quindi riporta esattamente l'output del compilatore, altrimenti non andiamo da nessuna parte!
aaa