Code écrit en C++
Environnement : Microsoft Visual Studio
J'ai un vecteur de cartes. D'abord, je veux itérer à travers la première carte, obtenir son "premier" et son "second" et les enregistrer dans une autre structure que j'ai construite (une carte de vecteurs). Ensuite, je vais itérer à travers les cartes de gauche dans mon "vecteur de cartes" et faire la même chose...
Voici mon vecteur de cartes :
typedef vector<map<string,unsigned int>> myvec;
Et voici la fonction qui devrait faire le travail :
void Coogle::make_index(const myvec& the_vec)
{
//SCAN THE FIRST MAP
map<string,unsigned int>::iterator map_iter;
index::iterator idx_iter = the_index.begin();
for(map_iter=the_vec[0].begin(); map_iter!=the_vec[0].end(); ++map_iter)
{
}
}
La boucle 'for' doit itérer sur la première carte du vecteur. J'ai déclaré un itérateur de carte parce que j'en ai besoin pour itérer dans la carte ! Pas vrai ? Pourquoi ça ne marche pas ?
l'erreur :
IntelliSense : aucun opérateur "=" ne correspond à ces opérandes
Merci beaucoup ! !!
OK, maintenant j'ai identifié cet itérateur :
index::iterator idx_iter = the_index.begin();
Et voici mon "index" :
typedef map<string,vector<unsigned int>> index;
Et dans la boucle 'for' mentionnée, j'ai fait ce qui suit :
for(map_iter=the_vec[0].begin(); map_iter!=the_vec[0].end(); ++map_iter)
{
/*#1*/ idx_iter->first = map_iter->first;
/*#2*/ idx_iter->second[0] = map_iter->second;
/*#3*/ idx_iter++;
}
Le numéro 2 semble être correct. Mais le n°1 génère une erreur :
IntelliSense : aucun opérateur "=" ne correspond à ces opérandes
C'est la même erreur que la précédente, donc je suppose que c'est un problème similaire. C'est le cas ?
éditer : Pour être plus clair, ce que je veux faire, c'est ajouter à partir de const myvec& the_vec à l'emplacement 'i' (dans ce cas '0') de mon index.
Encore une fois :
typedef vector<map<string,unsigned int>> myvec;
typedef map<string,vector<unsigned int>> index;
Merci !