C++新型初始化

问题描述:

比方说,我创建了一个新的类型是这样的:C++新型初始化

typedef std::pair<int, int> location; 

那么如何定义一个新的位置? 我现在这样做:

location end; 
end.first = 1; 
end.second = 2; 

但是有没有更快的方法?

非常感谢:d

+1

你没有实际添加一个“自定义变量”,但是一个新类型。 – MrJLP

+0

哦,我的坏,对不起开始C++像这样星期三大声笑。注意:D – Legend

+1

@MrJLP一个新类型*不是新类型,而是一个类型别名,它不是一回事。 – Rakete1111

您可以使用集合初始化:

location end = { 1, 2 }; 

或者std::make_pair

auto end = std::make_pair(1, 2); 

或者直接调用构造函数:

location end(1, 2); 
+0

谢谢先生:D – Legend

+2

我刚刚重新阅读您的问题。使用'typedef'不会定义新类型,而是为现有类型定义新名称(别名)。您将构造或初始化由别名定义的类型的对象,这与构建或初始化别名所引用类型的对象的方式相同。 –

+0

啊,好吧,它的工作原理基本上是我在这里的反正:P – Legend