Dans le code ci-dessous:Comment insérer dans std :: carte
map<string,vector<int>> create(ifstream& in, const vector<string>& vec)
{
/*holds string and line numbers into which each string appears*/
typedef map<string,vector<int>> myMap;
typedef vector<string>::const_iterator const_iter;
myMap result;
string tmp;
unsigned int lineCounter = 0;
while(std::getline(in,tmp))
{
const_iter beg = vec.begin();
const_iter end = vec.end();
while (beg < end)
{
if (tmp.find(*beg) != string::npos)
{
result[*beg].push_back(lineCounter);//THIS IS THE LINE I'M ASKING FOR
}
++beg;
}
++lineCounter;
}
return result;
}
Comment dois-je faire (chèque en ligne a commenté dans le code) si je veux utiliser la méthode d'insertion de la carte au lieu d'utiliser l'opérateur []?
Merci.
Je parie que Neil Butterworth le sait – Default
Pourquoi voulez-vous remplacer cette ligne? –
La boucle interne sur les éléments de 'vec' est parfaitement normale. Pourquoi n'utilisez-vous pas une boucle 'for' normale? J'ai passé beaucoup de temps à déterminer comment votre boucle différait d'une boucle normale. – MSalters