【发布时间】:2018-02-23 10:01:05
【问题描述】:
在使用 std::pair 时,我遇到了两种不同的方法来访问其元素。由于它们似乎都有效且有效,我想知道它们之间有什么区别以及哪种方法是首选?
std::pair<int, int> p(1,1); // can be of any type.
int i1 = p.first; // first approach
int i2 = std::get<0>(p); // second approach
【问题讨论】:
-
两者是等价的,没问题。 “更喜欢”哪一个是风格和个人喜好的问题。
-
std::get适用于其他一些类型,例如tuple,因此在模板化代码中很有用。没有其他具体优势。 -
如果我需要在一个项目中使用
std::tuple和std::pair,我会从一个项目中去掉std::pair。 -
@S.M.祝你好运改变
std::map<...>::value_type等。 -
@Caleth
std不是我的项目。