关于标准库中的pair的创建,为什么还要以个make_pair函数来创建pair对象呢?
在标准库中,作为模板的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对象
请大家指导指导。。