Il y a quelque temps, j'ai eu une discussion avec un collègue sur la façon d'insérer des valeurs dans les cartes STL . J'ai préféré map[key] = value; parce que ça semble naturel et clair à lire alors qu'il préférait map.insert(std::make_pair(key, value)) Je viens de lui demander et aucun de …
J'ai identifié quatre façons différentes d'insérer des éléments dans un std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Laquelle de ces méthodes est la méthode préférée / idiomatique? (Et y a-t-il un autre moyen auquel je n'ai pas pensé?)
En supposant une carte où vous souhaitez conserver les entrées existantes. 20% du temps, l'entrée que vous insérez est de nouvelles données. Y a-t-il un avantage à faire std :: map :: find puis std :: map :: insert en utilisant l'itérateur retourné? Ou est-il plus rapide de tenter l'insertion …
Comment mettre à jour la valeur d'une clé std::mapaprès avoir utilisé la findméthode? J'ai une carte et une déclaration d'itérateur comme celle-ci: map <char, int> m1; map <char, int>::iterator m1_it; typedef pair <char, int> count_pair; J'utilise la carte pour stocker le nombre d'occurrences d'un personnage. J'utilise Visual C ++ 2010.
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.