typedef set<int, less<int> > SetInt;
Veuillez expliquer ce que fait ce code.Que fait typedef en C++?
typedef set<int, less<int> > SetInt;
Veuillez expliquer ce que fait ce code.Que fait typedef en C++?
Cela signifie que lorsque vous créez un SetInt
, vous créez en fait un objet de set<int, less<int> >
.
Par exemple, il fait les deux pièces d'équivalent de code suivant:
SetInt somevar;
et
set<int, less<int> > somevar;
Il convient également de noter qu'il s'agit d'un synonyme exact et non d'un nouveau type introduit. Cela signifie que toute spécialisation de templates pour SetInt s'appliquera aussi à set
Vous pouvez simplement utiliser SetInt
après le typedef
comme si vous utilisez set<int, less<int>>
. Bien sûr, typedef
est conscient de la portée.
Vous avez toujours besoin d'un espace dans '>>', bien que le standard C++ 0x puisse rendre cela inutile dans le futur. –
De Wikipedia:
typedef
est un mot-clé dans les langages de programmation C et C++. Il est utilisé pour donner un nouveau nom à un type de données. L'intention est de faciliter la compréhension du code source par les programmeurs. Dans ce cas particulier
, il fait SetInt
un nom de type, de sorte que vous pouvez déclarer une variable:
SetInt myInts;
A typedef en C/C++ est utilisé pour donner un certain type de données un autre nom pour vous d'utiliser.
Dans l'extrait de code, set<int, less<int> >
est le type de données que vous voulez donner un autre nom (un alias si vous le souhaitez) à et ce nom est SetInt
Le but principal d'utiliser un typedef est de simplifier la compréhension des le code du point de vue d'un programmeur. Au lieu de devoir toujours utiliser un type de données compliqué et long (dans votre cas je suppose qu'il s'agit d'un objet modèle), vous pouvez choisir un nom plutôt simple à la place.
Le code signifie que vous donnez un alias ou le nom (SETINT) au
set<int, less<int>>
objet
... i.e.. au lieu d'appeler toujours l'objet comme
set<int, less<int>>
vous pouvez simplement donner SETINT que le nom et appeler l'objet .... tout comme
int i;
par exemple:
SetInt setinteger;
Vous avez toujours besoin d'un espace dans '>>', bien que le standard C++ 0x puisse rendre cela inutile dans le futur. –
quand je veux pour taper ce que "moins" signifie en elle et est-ce qu'il faut écrire ??? thankx –
Pouvez-vous nous donner la définition de code de moins? –
Partial
Vu qu'il n'y a pas de std :: before 'set',' less' fait alors probablement référence à 'std :: less'. Bien qu'il pourrait un ensemble personnalisé et moins, j'en doute. – GManNickG