Salve,
Premetto che utilizzo l'ambiente di sviluppo Eclipse con il compilatore mingw. Ho scaricato l'edizione wascana che mi è stata consigliata da un mio amico perchè più veloce e semplice da installare. Sto riscontrando spesso che quando includo librerie stl, mi capita che determinate funzioni incluse nelle librerie dei container, all'atto della compilazione non vengono riconosciute. Ad esempio:
Avendo preso questo codice dal mio libro di testo per poterlo provare sull'ambiente, mi risulta alquanto strano un errore del genere.codice:#include <iostream> #include <map> using namespace std; int main(){ typedef map<int, double, less<int> > mid; mid pairs; mid::const_iterator iter; pairs[ 25 ]= 9999.99;// errore: no match for 'operator[]' in 'pairs[25]' pairs[ 40 ]=8765.43;//errore: no match for 'operator[]' in 'pairs[40]' cout<<"\nPairs contains:\nKey\tValue\n"; for( iter=pairs.begin();iter!=pairs.end();++iter) cout<<iter->first <<'\t'<<iter->second<<'\n'; cout<<endl; return 0; }
In altri casi invece, quando ho utilizzato le librerie list, vector e altre, non mi riconosce l'iteratore all'atto di dichiarazione. Ho superato questo problema inserendo nelle inclusioni #include<iterator>, ma non dovrebbe funzionare anche senza questa direttiva?
Scusate l'ignoranza in materia.
Grazie mille per l'attenzione.