当前位置: 首页 > news >正文

网站排名优化服务中山祥云做的网站

网站排名优化服务,中山祥云做的网站,wordpress 开源app,做网站要幕布干啥呢什么是emplace_back emplace_back是C11引入的STL容器成员函数。emplace操作只执行构造而不执行拷贝构造。 如何理解上面这句话#xff1f;先来看一个场景。 class test { public:test(){}test(int i){ std::cout test(int i) std::endl; }tes…什么是emplace_back emplace_back是C11引入的STL容器成员函数。emplace操作只执行构造而不执行拷贝构造。 如何理解上面这句话先来看一个场景。 class test { public:test(){}test(int i){ std::cout test(int i) std::endl; }test(const test _test){ std::cout test(const test _test) std::endl; } };int main() {std::vectortest arr;arr.reserve(5);arr.push_back(1);arr.emplace_back(1);return 0; }test类显式写出了三个构造函数分别是无参构造、单参数构造、拷贝构造。因为C中单参数的构造函数支持隐式类型转换因此可以拿一个整型构造一个test对象。除非用explicit修饰构造函数表示禁止隐式类型转换构造。 test(int i) test(const test _test) test(int i)这是上述代码的运行结果可以看到push_back中会用整数1构造一个test对象再通过拷贝构造再构造一个对象这才是插入到arr数组中的对象。 而emplace_back只有一次隐式类型转换的构造因为emplace是直接使用参数在容器管理的内存空间中直接构造元素因此没有拷贝的操作在一定程度上提高了效率。 写入大数据时的性能差异 class test { public:test(){}test(int i){ }test(const test _test){ } };void test_push_back() {clock_t start clock();std::vectortest arr;arr.reserve(1000000000);for(int i 0; i 1000000000; i){arr.push_back(1);}std::cout 耗时 (clock() - start) std::endl;/*耗时24.41秒*/ }void test_emplace_back() {clock_t start clock();std::vectortest arr;arr.reserve(1000000000);for(int i 0; i 1000000000; i){arr.emplace_back(1);}std::cout 耗时 (clock() - start) std::endl;/*耗时15.86秒*/ }int main() {test_push_back();test_emplace_back();return 0; }shell脚本用于实时监控进程运行状况 while true; do ps aux | head -1 ; ps aux | grep a.out; printf ——————————————————————\n\n ; sleep 1; done一个栈上的test对象的大小是1个字节因为test类没有存储对象成员而编译器为了表明一个test对象存在需要用1字节作为占位符。 109 个对象即1亿个1个对象是1个字节。后台检测到有982456个字节即大约1GB。可以看到插入109个test对象的时候差距大概是10秒钟。 应用场景 你可能说这种优化有什么用有什么类会允许隐式类型转换还可能插入的时候不显式构造 没错就是string。 void test_push_back() {clock_t start clock();std::vectorstd::string arr;arr.reserve(1000000000);for(int i 0; i 100000000; i){arr.push_back(Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! );}std::cout 耗时 (clock() - start) std::endl;/*耗时25.66秒*/ }void test_emplace_back() {clock_t start clock();std::vectorstd::string arr;arr.reserve(1000000000);for(int i 0; i 100000000; i){arr.emplace_back(Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! Hello World !!! );}std::cout 耗时 (clock() - start) std::endl;/*耗时16.20秒*/ }耗时20.39秒 耗时17.87秒可是差距好像并不是很大- 综上所述可能提升有限但是能使用emplace_back还是不使用push_back了。
http://www.dnsts.com.cn/news/122485.html

相关文章:

  • 住建厅电子证书的查询方式seo从0到1怎么做
  • dedecms学校网站模板wordpress如何设置邮箱验证码
  • 做网站的价seo的内容怎么优化
  • 网站营销外包公司简介wordpress发送密码到邮箱
  • 网站如何做好seo500个公司取名大全
  • 做免费的网站教程一个云主机可以做多少网站
  • 重庆网站网页设计培训机构张掖市建设规划局网站
  • 广州网站开发 d广州亦客网络多种语言的网站
  • 建设网站工作报告dw个人主页制作模板
  • 徐州网站建设策划园区网站建设目的
  • 17网一起做网站哪个网站做平面能兼职
  • 免费人体做爰网站网站模板内容怎么添加图片
  • 网站数据迁移教程个人网站的制作模板
  • 鲜花销售网站模板百度seo多久能优化关键词
  • 外贸公司网站大全用什么面板搭建Wordpress
  • 设计网站faq需注意做网站属于什么技术
  • 时间轴网站最新新闻热点事件2021年10月
  • discuz网站名称百度网盘登陆入口
  • 帮人做钓鱼网站国外wordpress主题风险
  • 广东企业网站seo报价wordpress图片存放地址
  • 大气物流公司网站源码什么是多页面网站
  • 网站上传照片 传不上去百度学术论文查重官网入口
  • 昌乐哪里有做网站的荣耀手机官网网站
  • 福州 网站建设天河做网站平台
  • 优质的营销网站建设网站建设需要哪些条件
  • 西安建站系统做网站销售的换工作
  • 绵阳 网站 建设电子商务网站建设的规划方案
  • app网站区别温州系统开发
  • 爱站网 关键词挖掘怎么修复网站死链
  • 江苏泰兴网站建设上传下载网站建设