C++ typedef在C++; typedef set SetInt;

C++ typedef在C++; typedef set SetInt;,c++,typedef,C++,Typedef,请解释此代码的作用。这意味着无论何时创建SetInt,实际上都是在创建set的对象 例如,它使以下两段代码等效: typedef set<int, less<int> > SetInt; 及 设置somevar; 它为名为SetInt的类型创建了一个别名,该别名相当于set 关于您关于less的问题,这是指将用于对对象进行排序的比较器。您只需在typedef之后使用SetInt,就像使用set一样。当然,typedef是范围感知的。来自: TyPufF是C语言和C+

请解释此代码的作用。

这意味着无论何时创建
SetInt
,实际上都是在创建
set
的对象

例如,它使以下两段代码等效:

typedef set<int, less<int> > SetInt;

设置somevar;

它为名为
SetInt
的类型创建了一个别名,该别名相当于
set


关于您关于less的问题,这是指将用于对对象进行排序的比较器。

您只需在
typedef
之后使用
SetInt
,就像使用
set
一样。当然,
typedef
是范围感知的。

来自:

<代码> TyPufF是C语言和C++编程语言中的关键字。它用于为数据类型指定新名称。目的是使程序员更容易理解源代码

在这种特殊情况下,它使
SetInt
成为一个类型名,以便您可以将变量声明为:

set<int, less<int> > somevar;

C/C++中的typedef用于为某个数据类型提供另一个名称供您使用

在您的代码段中,
set
是您希望为其指定另一个名称(如果愿意,可以使用别名)的数据类型,该名称为
SetInt


使用typedef的主要目的是从程序员的角度简化对代码的理解。您可以选择一个相当简单的名称,而不必总是使用复杂而冗长的数据类型(在您的情况下,我假定它是一个模板对象)。

代码意味着您为该对象提供了一个别名或名称(SetInt)

例如:


当我想打字的时候,“少”是什么意思?它一定要写吗???谢谢你能给我们一个less的代码定义吗?既然在
集合
之前没有std::less,
less
那么可能指的是
std::less
。虽然它可能是一个自定义集或更少,但我对此表示怀疑。您仍然需要在“>>”中使用空格,尽管C++0x标准可能会在将来不需要它。您仍然需要在“>>”中使用空格,尽管C++0x标准可能会在将来不需要它。还应该注意,这是一个确切的同义词,而不是引入的新类型。这意味着SetInt模板的任何专门化也将应用于set。因此,它只是一个简写,例如,对于可读性或干性很有用。
set<int, less<int> > somevar;
SetInt myInts;
set<int, less<int>>
set<int, less<int>>
int i;
SetInt setinteger;