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:
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;
}
Avendo preso questo codice dal mio libro di testo per poterlo provare sull'ambiente, mi risulta alquanto strano un errore del genere.
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.