作者legnaleurc (CA)
看板C_and_CPP
标题Re: [问题] map::insert()呼叫constructor的次数
时间Wed Mar 4 21:42:03 2009
※ 引述《darkhcv (我只想耍废)》之铭言:
: MyMap.insert( make_pair(0, *pMy1) );
我後来用gdb trace了一下
这似乎是STL的问题
我的编译器实作更糟糕, 会呼叫4次 copy ctor:
(以下省去语法细节)
template< typename T, typename U >
make_pair( T f, U s ) { return pair< T, U >( f, s ) }
// pass by value
pair::pair( const T & f, const U & s ) : first( f ), second( s ) {}
// construct a copy
其他两次似乎是在存入map时发生的
最佳化也无法消化复本的开销
--
自High笔记(半荒废)
http://legnaleurc.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.146.194.91
1F:推 darkhcv:了解了,谢谢~ 03/06 14:06