2017-05-05 90 views
0

比方說,我創建了一個新的類型是這樣的: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

回答

1

您可以使用集合初始化:

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