Ok, le problème est assez simple - je lis les mots du flux d'entrée, les mots peuvent répéter. J'ai besoin de remplir une carte pour que tous les mots obtiennent des indices de 0 à n-1. Voici mon code:`auto-increment` std :: map <string, int> :)
map<string, int> mp;
string s;
int n = 0;
while(cin >> s)
{
if(mp.find(s) == mp.end())
{
mp.insert(make_pair(s, n++));
}
}
Est-ce la meilleure façon d'obtenir ce que je veux réaliser ou y at-il plus élégant, plus de solutions STL-ish? Merci d'avance
Cela semble suffisant. – prolink007
Pourquoi avez-vous besoin d'un index? Utilisez-vous ceci pour mapper un mot à un index dans un vecteur où vous stockez plus d'informations dans le vecteur. Pourquoi ne pas simplement stocker les informations sur la carte? –
@Martin: Finalement, je vais construire une matrice d'adjacence pour un graphique dont les sommets sont ces chaînes. utiliser des index comme des sommets de graphique est pratique –