2011-05-04 6 views
-1

Je l'ai rencontré ce dans les applications Visual C++Qu'est-ce que cela signifie en C++

extern map<string, rpcfn_type> mapCallTable; 

ou

map<string, string> 

Qu'est-ce que cela signifie? Pas la chose carte, mais le

<string, string> 

partie

+0

Eh bien, il est difficile de voir ces pièces séparément. Voir http://www.cplusplus.com/reference/stl/map/ ou peut-être mieux http://www.uow.edu.au/~nabg/ABC/ABC.html – sehe

+0

Ils sont les paramètres du modèle, c'est la cartographie une chaîne à une chaîne, ou une chaîne à un rpcfn_type dans le premier exemple – forsvarir

+0

Avant d'écrire d'autres applications Visual C++, vous pouvez vouloir [lire un bon livre] (http://stackoverflow.com/questions/388242/the -definitive-c-book-guide-and-list). –

Répondre

10

Ce sont des paramètres modèle; map est un modèle de classe, et il n'est pas complet jusqu'à ce que vous lui indiquiez les types avec lesquels il travaillera. Le premier est le type de la clé, et le second est le type de données qui seront stockées via la clé.

+0

+1 Directement au point en seulement quelques phrases :) – ralphtheninja

0

Vous ne pouvez pas prendre la pièce <string, string> séparément car c'est un modificateur à map.

map est un type de modèle, et <string, string> fait référence aux types qu'il utilise. map<string, string> désigne un map dont le type de clé est string et dont le type de valeur est également string.

1

std::map est un modèle. Vous l'utilisez pour créer un type qui a une clé et certaines données associées à cette clé. Les parenthèses sont celles où vous spécifiez ces deux types, ainsi (par exemple), map<string, string> définit un type qui utilise une chaîne comme clé et une autre chaîne associée au premier.

Celui qui est peut-être plus facile à suivre serait quelque chose comme:

struct person {   
    string name; 
    string email_address; 
    phone_number home; 
    phone_number mobile; 
}; 

map<string, person> people; 

Ce laissez-moi est (par exemple) utiliser un surnom comme la clé pour rechercher le nom, l'adresse e-mail, numéros de téléphone, etc. pour la personne.