如何#define c ++ STL宏

时间:2017-11-02 15:13:32

标签: c++ stl macros

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

#define vector<pair<int,pair<int,int>>> my_list

但是,在汇编时它会说,

  

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

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

1 个答案:

答案 0 :(得分:7)

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

using my_list = vector<pair<int,pair<int,int>>>;

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

顺便说一下,你的#define不起作用,因为你颠倒了参数的顺序。令牌先行,然后是所需的扩展:

#define my_list vector<pair<int,pair<int,int>>>