您的位置:首页 > 汽车 > 新车 > 线上推广专员岗位职责_企业推广策划方案_建站平台哪个好_百度域名查询

线上推广专员岗位职责_企业推广策划方案_建站平台哪个好_百度域名查询

2025/5/10 5:57:46 来源:https://blog.csdn.net/weixin_45207619/article/details/145999279  浏览:    关键词:线上推广专员岗位职责_企业推广策划方案_建站平台哪个好_百度域名查询
线上推广专员岗位职责_企业推广策划方案_建站平台哪个好_百度域名查询

C++中有一个常见的误区,在对pair处理时,有时候需要通过花括号{将pair的元素包裹起来作为参数传递,否则编译器会报错;有时候又可以直接将多个元素直接作为参数传递,编译器不会报错,例如priority_queue的emplace方法。

emplace

这个方法的作用是在priority_queue堆中插入一个元素,如果我定义的堆如下:

priority_queue<pair<int, int>>q;

那么使用emplace的情况可能就像这样:

q.emplace(nums[i], i);

那么stl内部是如何实现的呢?

STL的实现

void emplace(Args&&... args);

这段代码表示了STL内部的实现,主要奥秘在参数部分:
在这里插入图片描述
首先是利用了模板参数包Args,也就是说这个类不是用户自定义的而是已经封装好的,然后通过…就实现了多个参数的接收,这种手段比tuple更灵活,主要体现在:
在这里插入图片描述
而完美转发的存在又使得对其插入的过程中存在的拷贝占用的时间和空间大大减小,进一步提升了stl使用起来的效率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com