关于标准库中的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对象
请大家指导指导。。
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对象
请大家指导指导。。
...全文
相关推荐
C++标准库(pdf)
#### 4.1.1 make_pair()函数`make_pair()`是一个非常实用的辅助函数,它可以方便地创建一个`std::pair`对象。
C++ pair的用法实例详解
make_pair 函数make_pair 函数是一个模板函数,用于生成 pair 对象。
C++ pair的基本用法总结整理
, int> p2("hello", 10); // 创建一个对象p2,两个元素类型分别是string和int,并初始化为"hello"和10pair<string, int> p3 = make_pair
谈谈C++学习之Pair的使用方法
**生成新的Pair对象**: 使用 `std::make_pair` 函数可以从现有的两个数据构造一个新的 `pair` 对象: ```cpp int a = 8; string m = "James
C++学习之Pair
`make_pair`函数接受两个参数,返回一个新构造的Pair对象:```cppint a = 8;string m = "James";pair<int, string> newone = make_pair


