首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >std::make_偶对与std::对的构造函数的目的是什么?

std::make_偶对与std::对的构造函数的目的是什么?
EN

Stack Overflow用户
提问于 2018-04-16 04:35:18
回答 2查看 0关注 0票数 0

什么是目的std::make_pair?

为什么不直接std::pair<int, char>(0, 'a')?

这两种方法有什么区别吗?

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 13:31:03

不同之处在于std::pair需要指定这两个元素的类型,而std::make_pair将创建一个具有传递给它的元素类型的对,而不需要告诉它。不管怎么说,我都能从不同的医生那里收集到。

代码语言:txt
复制
pair <int,int> one;
pair <int,int> two;

one = make_pair (10,20);
two = make_pair (10.5,'A'); // ok: implicit conversion from pair<double,char>

除了它的隐式转换奖励之外,如果没有使用make_你要做的一对

代码语言:txt
复制
one = pair<int,int>(10,20)

每次你分配给一个人,这会让你很烦人...

票数 0
EN

Stack Overflow用户

发布于 2018-04-16 14:17:34

使用make_pair并显式调用pair具有指定类型参数的构造函数。std::make_pair当类型冗长时,更方便,因为模板方法具有基于给定参数的类型推断。例如,

代码语言:txt
复制
std::vector< std::pair< std::vector<int>, std::vector<int> > > vecOfPair;
std::vector<int> emptyV;

// shorter
vecOfPair.push_back(std::make_pair(emptyV, emptyV));

 // longer
vecOfPair.push_back(std::pair< std::vector<int>, std::vector<int> >(emptyV, emptyV));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档