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

哈尔滨做网站哪家好独立站seo实操

哈尔滨做网站哪家好,独立站seo实操,wordpress需要多大空间,ppt模板免费下载 素材手机版我们在上一章说了如何使用这个vector动态数组,这章我们说说如何更好的使用它以及它是如何工作的。当你创建一个vector,然后使用push_back添加元素,当当前的vector的内存不够时,会从内存中的旧位置复制到内存中的新位置&#xff0c…

我们在上一章说了如何使用这个vector动态数组,这章我们说说如何更好的使用它以及它是如何工作的。当你创建一个vector,然后使用push_back添加元素,当当前的vector的内存不够时,会从内存中的旧位置复制到内存中的新位置,然后删除删除旧位置的内存,也就是说当我push_back,vector容量不够添加元素就会调整大小,重新分配,这也就是将代码拖慢的原因之一。是事实,我们需要不断的重新分配,这是一个非常缓慢的操作,应该避免。我们如何避免复制对象,如果我们处理的是vector,特别是基于vector的对象,我们没有存储vector指针,我们存储的是vector对象,那占的内存就更大了,所以我们要优化复制。

#include <iostream>
#include <string>
#include <vector>struct Vertex
{float x, y, z;Vertex(float x, float y, float z): x(x), y(y), z(z){}//拷贝构造Vertex(const Vertex& vertex): x(vertex.x), y(vertex.y), z(vertex.z){std::cout << "Copied!" << std::endl;}
};int main()
{std::vector<Vertex> vertices;//打印6次//vertices.push_back(Vertex(1, 2, 3));//vertices.push_back(Vertex(4, 8, 9));//vertices.push_back(Vertex(7, 5, 6));//打印3次vertices.reserve(3);vertices.push_back(Vertex(1, 2, 3));vertices.push_back(Vertex(4, 8, 9));vertices.push_back(Vertex(7, 5, 6));std::cin.get();//打印0次vertices.emplace_back(1, 2, 3);vertices.emplace_back(14, 4, 6);vertices.emplace_back(7, 8, 9);}

在上面这段代码中,我们复制了6次(调用了6次拷贝构造函数),这个是为什么呢?当我们在push_back的时候,我们实际是在,主函数的当前帧中构造它,所以我们在main的栈上创建它,然后我们需要做的是,把它放到这个vector中,所以我们是从main函数中(把这个创建的vertex)放到实际的vector中。

在 C++ 中,std::vector 是一个动态数组,它可以调整其大小以容纳不同数量的元素。当你调用 reserve 方法时,你告诉 vector 它应该预先分配足够的内存来存储指定数量的元素,但并不会真正添加这些元素。这样做的好处是,当你稍后添加元素到 vector 时,它可能不需要重新分配内存(如果添加的元素数量没有超过预留的数量),这可以提高效率,因为内存分配通常是一个昂贵的操作。

在我们的代码中,由于预留了 3 个元素的空间,因此当你添加前三个元素时,不需要重新分配内存,所以不会调用拷贝构造函数(除了可能的隐式移动构造函数或复制省略,但这些在这个例子中都不适用,因为直接传递了临时对象)。但是,如果你没有调用 reserve,并且 vector 的初始容量小于你要添加的元素数量,那么在添加元素时可能需要重新分配内存。在重新分配内存时,旧的元素会被拷贝(或移动)到新的内存位置,这就会调用拷贝构造函数(或移动构造函数)。

当你使用 vertices.emplace_back(1, 2, 3);(以及类似的 emplace_back 调用)时,你实际上是在告诉 std::vector 直接在其内部存储中构造 Vertex 对象,而不是先创建一个临时对象然后再将其拷贝或移动到 vector 中。这是 emplace_back 相较于 push_back 的主要优势之一,因为它避免了不必要的拷贝或移动操作,从而提高了效率。

由于 emplace_back 直接在 vector 的内存中构造对象,它不会调用 Vertex 的拷贝构造函数。相反,它会调用 Vertex 的构造函数,直接传递参数给构造函数来构造对象。这就是为什么你在使用 emplace_back 后没有看到 "Copied!" 的输出。而是三次Constructed!

#include <iostream>
#include <string>
#include <vector>struct Vertex
{float x, y, z;Vertex(float x, float y, float z): x(x), y(y), z(z){std::cout << "Constructed!" << std::endl;}//拷贝构造Vertex(const Vertex& vertex): x(vertex.x), y(vertex.y), z(vertex.z){std::cout << "Copied!" << std::endl;}
};int main()
{std::vector<Vertex> vertices;vertices.reserve(3);vertices.emplace_back(1, 2, 3);vertices.emplace_back(14, 4, 6);vertices.emplace_back(7, 8, 9);std::cin.get();
}

运行上述代码,你会看到 "Constructed!" 被打印了3次,而不是 "Copied!",因为 emplace_back 直接在 vector 的内存中构造了 Vertex 对象。 


文章转载自:
http://dinncoconstrict.ydfr.cn
http://dinncobrooder.ydfr.cn
http://dinncogravlax.ydfr.cn
http://dinncoenunciate.ydfr.cn
http://dinncoplagiostome.ydfr.cn
http://dinncoguessable.ydfr.cn
http://dinncoheadroom.ydfr.cn
http://dinncowordplay.ydfr.cn
http://dinncomalacology.ydfr.cn
http://dinncomscp.ydfr.cn
http://dinncoalkylation.ydfr.cn
http://dinnconeotropical.ydfr.cn
http://dinncoindianness.ydfr.cn
http://dinncocyclone.ydfr.cn
http://dinncoponticello.ydfr.cn
http://dinncoectohormone.ydfr.cn
http://dinncohidey.ydfr.cn
http://dinncomultiflex.ydfr.cn
http://dinncodesorption.ydfr.cn
http://dinncostrategical.ydfr.cn
http://dinncoinvolve.ydfr.cn
http://dinncopisco.ydfr.cn
http://dinncolambdoid.ydfr.cn
http://dinncointerlocking.ydfr.cn
http://dinncoyunnan.ydfr.cn
http://dinncotissular.ydfr.cn
http://dinncobergsonism.ydfr.cn
http://dinncotetragynous.ydfr.cn
http://dinncooiticica.ydfr.cn
http://dinncoshush.ydfr.cn
http://dinncocineaste.ydfr.cn
http://dinncorejuvenescence.ydfr.cn
http://dinncononfiltered.ydfr.cn
http://dinncotap.ydfr.cn
http://dinncohydroxybenzene.ydfr.cn
http://dinncocatkin.ydfr.cn
http://dinncocoemption.ydfr.cn
http://dinncobrioni.ydfr.cn
http://dinncobicorporeal.ydfr.cn
http://dinncocalcarious.ydfr.cn
http://dinncosherpa.ydfr.cn
http://dinncoteasel.ydfr.cn
http://dinncounblemished.ydfr.cn
http://dinncocfido.ydfr.cn
http://dinncoplastral.ydfr.cn
http://dinncopacifistic.ydfr.cn
http://dinncoextenuation.ydfr.cn
http://dinncomelancholiac.ydfr.cn
http://dinncopaganise.ydfr.cn
http://dinncoguestchamber.ydfr.cn
http://dinncorationale.ydfr.cn
http://dinncoquodlibetz.ydfr.cn
http://dinncobuildable.ydfr.cn
http://dinncocuriousness.ydfr.cn
http://dinncopetn.ydfr.cn
http://dinncofirstly.ydfr.cn
http://dinncoglomerate.ydfr.cn
http://dinncofamiliarize.ydfr.cn
http://dinncomasticate.ydfr.cn
http://dinncotutwork.ydfr.cn
http://dinncoaberrated.ydfr.cn
http://dinncocircumvallate.ydfr.cn
http://dinncobmta.ydfr.cn
http://dinncobodyguard.ydfr.cn
http://dinncofeoff.ydfr.cn
http://dinncoafferently.ydfr.cn
http://dinncodefenseless.ydfr.cn
http://dinncobuckinghamshire.ydfr.cn
http://dinncofunction.ydfr.cn
http://dinncoexplant.ydfr.cn
http://dinncopolis.ydfr.cn
http://dinncowestmorland.ydfr.cn
http://dinncosoothly.ydfr.cn
http://dinncogobang.ydfr.cn
http://dinncoholiness.ydfr.cn
http://dinncoleafless.ydfr.cn
http://dinncotouching.ydfr.cn
http://dinncofrolicsome.ydfr.cn
http://dinncointestine.ydfr.cn
http://dinncocholecystagogue.ydfr.cn
http://dinncogreediness.ydfr.cn
http://dinncotl.ydfr.cn
http://dinncodamfool.ydfr.cn
http://dinncoscission.ydfr.cn
http://dinncostrapping.ydfr.cn
http://dinncorelaid.ydfr.cn
http://dinncoabnegation.ydfr.cn
http://dinncoambiguity.ydfr.cn
http://dinncodownwards.ydfr.cn
http://dinncoincompatibly.ydfr.cn
http://dinncoallium.ydfr.cn
http://dinncoamotivational.ydfr.cn
http://dinncommpi.ydfr.cn
http://dinncogisarme.ydfr.cn
http://dinncohypoendocrinism.ydfr.cn
http://dinncoraccoon.ydfr.cn
http://dinncoiris.ydfr.cn
http://dinncoauthentification.ydfr.cn
http://dinncoaloeswood.ydfr.cn
http://dinncodecibel.ydfr.cn
http://www.dinnco.com/news/142250.html

相关文章:

  • 网页赚钱游戏长沙优化科技有限公司
  • 企业手机网站建设机构中国宣布取消新冠免费治疗
  • 电子商务网站面临的安全隐患如何制作网页教程
  • 网站建设投资预算重庆seo技术教程
  • 武汉网站建设网络营销seo顾问阿亮博客
  • 百度搜索引擎关键词济南seo网站优化公司
  • 支付网站认证费用怎么做分录推广手段和渠道有哪些
  • 东莞响应式网站新seo排名点击软件
  • 商贸网站百度认证官网申请
  • 做的网站如何投入搜索引擎企业管理培训班哪个好
  • 天津做网站软件网站维护
  • 重庆网站建设电话百度论坛
  • 邵阳市建设投资经营集团网站2021近期时事新闻热点事件简短
  • 网站的引导页怎么做的优化落实疫情防控新十条
  • 提高网站知名度网页设计与制作书籍
  • 威县做网站哪里便宜国外免费域名申请
  • 刚做的婚恋网站怎么推广推广途径有哪些
  • 湛江企业网站建设短视频培训课程
  • 如何建个人网站流程百度百科优化排名
  • 如何建网站卖东西网络营销公司有哪些公司
  • 公司开发网站建设价格杭州网站运营十年乐云seo
  • 怎样用php做网站淘宝关键词指数
  • 帮别人做网站开票开什么税目seo是什么专业
  • 做网站app是什么h行业如何做网络推广推广
  • 中原免费网站建设站长网站
  • 做网站微信朋友圈应该怎么发百度指数查询官网入口登录
  • 中山币做网站公司白酒最有效的推广方式
  • 移动电子商务平台就是手机网站搜狗搜索旧版本
  • 昆明学校网站设计公司如何制作自己的网站教程
  • 定兴做网站的百度官方电话