关于标准库中的pair的创建,为什么还要以个make_pair函数来创建pair对象呢?

zhangjundriver zhangjundriver 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在标准库中,作为模板的pair中,make_pair函数定义如下:
template<class _Ty1,
class _Ty2> inline
pair<_Ty1, _Ty2> make_pair(_Ty1 _Val1, _Ty2 _Val2)
{ // return pair composed from arguments
return (pair<_Ty1, _Ty2>(_Val1, _Val2));
}
为什么还要这样的函数呢,难道直接定义对象不行吗?
另外,调用该函数,需要函数调用的开销(当没有被内联的时候),而且里面要构造函数,和返回是的拷贝构造的调用也是开销,比较起直接的构造效率差多了啊。
我想不通为什么还用用这个函数来创建pair对象
请大家指导指导。。
...全文
评论 4
收藏 已收藏
分享
返回顶部
zhangjundriver
C++ 语言 65,214 成员 250,514 内容