如何#define c ++ STL宏

dip*_*ech 2 c++ macros stl

我想vector<pair<int,pair<int,int>>>在C++中使用 ,但我想缩短数据类型声明以避免重写长行.我试图用#define这种方式 -

#define vector<pair<int,pair<int,int>>> my_list
Run Code Online (Sandbox Code Playgroud)

但是,在编译它说,

错误:'my_list'没有命名类型

我找不到合适的方式写这个,请帮忙!

Vit*_*meo 7

您不需要为此任务使用预处理器,您可以使用类型别名:

using my_list = vector<pair<int,pair<int,int>>>;
Run Code Online (Sandbox Code Playgroud)

不要将预处理器用于可以用该语言完成的事情.


顺便说一句,你#define没有工作,因为你颠倒了参数的顺序.令牌先行,然后是所需的扩展:

#define my_list vector<pair<int,pair<int,int>>> 
Run Code Online (Sandbox Code Playgroud)