Ciao a tutti, volevo chiedervi se avevate tempo un aiuto sul container std::map
Io ho il seguente codice
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string.h>
#include<map>
using namespace std;
per le librerie
poi
map<int,int> mappa;
int main()
{
mappa[8]=4;
mappa[5]=1;
mappa[6]=3;
mappa[9]=42;
mappa[1]=123;
mappa[3]=566;
return 0;
cout<<mappa[6]<< '\n';
}
questo è il mio codice. Ora io sto provando a buttare elementi nella map, ma il problema è che non stampa niente. Ho provato anche altri metodi d’inserimento :
il map::insert(make_pair(int,int), e non mette dentro niente nella mappa o addirittura da errore
il map::at(chiave) = numero, che però da errore
ed anche per stamparli ho provato sia così, che con il map::at e anche con l’iteratore. Risultato, non stampa niente. E il bello è che su c++reference c’è il codice
int main ()
{
std::map<char,std::string> mymap;
mymap['a']="an element";
mymap['b']="another element";
mymap['c']=mymap['b'];
std::cout << "mymap['a'] is " << mymap['a'] << '\n';
std::cout << "mymap['b'] is " << mymap['b'] << '\n';
std::cout << "mymap['c'] is " << mymap['c'] << '\n';
std::cout << "mymap['d'] is " << mymap['d'] << '\n';
std::cout << "mymap now contains " << mymap.size() << " elements.\n";
return 0;
}
E questo va. Il problema è che bene o male il codice lo ho copiato da c++reference.
Qualcuno mi sa dire dove sbaglio? (Magari è solo il compilatore: su Win 7 con codeblocks non va, su ubuntu con codeblocks va MA su ubuntu non ho fatto girare questo, ne ho fatto girare uno in cui il map ha una chiave di tipo definito a parte ed in cui, magari influendo, tiravo in ballo anche OpenCV, quindi magari è tutta un’altra storia). Idee? Basta un operatore/funzione (uno, non di più) che funzioni per inserire elementi ed accedervi. Grazie mille in anticipo