typedef set<int, less<int> > SetInt;
Por favor, explique qué hace este código.¿Qué hace typedef en C++
typedef set<int, less<int> > SetInt;
Por favor, explique qué hace este código.¿Qué hace typedef en C++
Esto significa que cada vez que crea un SetInt
, en realidad está creando un objeto de set<int, less<int> >
.
Por ejemplo, hace que los siguientes dos piezas de código equivalente:
SetInt somevar;
y
set<int, less<int> > somevar;
También se debe tener en cuenta que este es un sinónimo exacto, no un nuevo tipo que se introduce. Significa que cualquier especialización de plantillas para SetInt también se aplicará a set
Puede simplemente usar SetInt
después del typedef
como si estuviera usando set<int, less<int>>
. Por supuesto, typedef
es consciente del alcance.
Aún necesita un espacio en '>>', aunque el estándar C++ 0x puede hacerlo innecesario en el futuro. –
De Wikipedia:
typedef
es una palabra clave en los lenguajes de programación C y C++. Se usa para dar un nuevo nombre a un tipo de datos. La intención es facilitar que los programadores comprendan el código fuente.
En este caso particular, se hace SetInt
un nombre de tipo, de manera que se puede declarar una variable como:
SetInt myInts;
un typedef en C/C++ se utiliza para dar un cierto tipo de datos con otro nombre para que lo uses
En el fragmento de código, set<int, less<int> >
es el tipo de datos que desea darle otro nombre (un alias si lo desea) a y ese nombre es SetInt
El propósito principal de utilizar un typedef es simplificar la comprensión de el código desde la perspectiva de un programador. En lugar de tener que usar siempre un tipo de datos largo y complicado (en su caso, supongo que es un objeto de plantilla), puede elegir un nombre bastante simple en su lugar.
El código significa que usted da un alias o nombre (setInt) al objeto
set<int, less<int>>
... es decir. en lugar de llamar siempre el objeto como
set<int, less<int>>
sólo puede dar setInt como el nombre y llamar al objeto .... al igual que
int i;
por ejemplo:
SetInt setinteger;
Aún necesita un espacio en '>>', aunque el estándar C++ 0x puede hacerlo innecesario en el futuro. –
cuando quiero para escribirlo ¿qué significa "menos" y debe escribir? thankx –
¿Puede darnos la definición de código de menos? –
Partial
Al ver que no hay std :: before 'set',' less' entonces probablemente se refiere a 'std :: less'. Aunque podría ser un conjunto personalizado y menos, lo dudo. – GManNickG