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

外贸流程中的单证有哪些抖音seo排名

外贸流程中的单证有哪些,抖音seo排名,电商平台如何做推广,西安互联网网站建设一、In-Place Construction In-Place Construction,就地构造或原地构造。它是什么意思呢?就是在最终使用 个对象的内存处直接创建对象。为什么会这样做?有什么目的?大家都知道,对C/C来说,性能在开发中是一…

一、In-Place Construction

In-Place Construction,就地构造或原地构造。它是什么意思呢?就是在最终使用 个对象的内存处直接创建对象。为什么会这样做?有什么目的?大家都知道,对C/C++来说,性能在开发中是一个重要的考量因素。在前面的一些优化的过程,都提出过各种的内存优化。比如返回值优化(RVO,NRVO),就可以减少对象的拷贝动作。而std::move和移动拷贝构造函数都可以减少临时对象的创建。
在前面分析一些STL的容器接口中,提出过尽量使用emplace_back而不使用传统的insert等,其中一个重要原因也是如此。

二、placement new

在看到前面的就地构造,会不会想起placement new操作符,在前面的分析中可以知道它可以在指定的内存上进行对象的构造,这是不是和In-Place Construction有些相通的味道。但placement new使用起来有些不方便,除了自己要搞定内存的控制外,生成对象的构造函数还需要开发者自己管理。
好,既然明白了有味道相似,那么就可以猜测到它们之间肯定存在着一些什么关系。
c++内存分配的管理中分析过,launder和start_lifetime_as

三、二者关系和应用场景

在前面的文章“c++17的launder”和“launder和start_lifetime_as”中都提到了placement new,也可以看到它们和In-Place Construction有些类似的使用方式。其实,仔细的分析会发现,In-Place Construction底层就是使用placement new来实现的。可以这样理解,In-Place Construction是上层抽象的封装应用,而placement new是底层的真正实现。举一个不太恰当的例子,正如new和 malloc的行为逻辑有些相似,new底层调用了malloc。
在很多的应的场景下,内存可能需要反复的创建和释放。这很容易产生内存碎片或严重影响效率。那么解决这类问题的前提,可以使用内存池技术;但如果想重复应用一块内存的情况下,则可以考虑使用这种placement new,为了简化和应用上的安全,进行更高层次的抽象封装,实现内存的安全管理。则可以使用In-Place Construction。
说了这些,哪些常见的情况下会有这种应用呢?
1、STL的容器操作的插入,如提到的vector等的empalce_back和empalce函数
2、内存池固定复用内存,减少动态分配的相关资源消耗,提高效率
3、延迟初始化需要在固定的内存中创建对象,包括模板中的某些参数处理等
4、自定义,可以根据开发者的特定需求进行处理,如程序中反复使用一块儿大的内存等

四、实例分析

下面看一个placement new例子:

#include <iostream>class PlacementDemo {
public:int value_;PlacementDemo(int value) : value_(value) {}void get() { std::cout << "cur value_: " << value_ << std::endl; }
};int main() {char buf[sizeof(PlacementDemo)];  void* ptr = static_cast<void*>(buf);  // placement newPlacementDemo* obj = new (ptr) PlacementDemo(1);  obj->get();  obj->~PlacementDemo();//显式调用return 0;
}

再看一个STL容器中In-Place Construction的例子:

#include <vector>
#include <string>int main() {std::vector<std::string> vec;vec.emplace_back("demo"); //  vector 的尾部内存中原地构造 std::string对象return 0;
}

大家还可以翻一翻刚刚提到的前面几篇文章,对照学习,会有更大的收获。

五、总结

技术的进步不是一朝一夕完成的,它一定是从需求出发,不断的进行完善,然后被抽象出来。无论是RVO还是各种的内存优化,当然也包括今天提到的就地构造等,它们都是对追求效率和安全的一种演进过程。不管是开发者还是设计者,都要多学习这种优秀的经验,不断的融会贯通,提高自己的整体的水平。
既要拿来主义,又要明白主义,博采众家之长,这才是学习的最终目的。

http://www.dtcms.com/wzjs/406560.html

相关文章:

  • vue做网站百度推广怎么做免费
  • 互动型网站成功例子做网页
  • 微信网站什么做seo推广的方法
  • 找别人做网站需要注意什么推广方案有哪些
  • 岳阳做网站推荐企业营销策划包括哪些内容
  • 网站开发工作容易出现的失误国内新闻最新消息10条
  • 公司网站的建设要注意什么站长工具精华
  • 做猎头需要用到的网站小红书新媒体营销案例分析
  • 郑州网站设计网站seo数据
  • 网站怎样投放广告位网络优化seo
  • pc和移动版网站长尾关键词搜索
  • 营销一型网站建设公司总推荐榜总点击榜总排行榜
  • 原则网站设计版式seo网络优化平台
  • 北京营销型网站建设价格关键词优化seo优化
  • 网络软文营销的案例seo网站排名优化公司哪家好
  • 汽车美容网站模板关键词优化公司推荐
  • 网站建设_网站制作公司_捷创关键词排名监控
  • 英文网站建设 济南搜索热门关键词
  • ipo和seoseo是什么平台
  • 何炅做的网站广告短视频运营公司
  • 网站如何做收录排行最受欢迎的十大培训课程
  • 沂seo网站推广竞价推广网络推广运营
  • 域名备案成功如何做网站优化 seo
  • .net做网站开发吗最新中高风险地区名单
  • 电子商务网站建设考卷怎么恶意点击对手竞价
  • 长沙公积金网站怎么做异动厦门网站制作全程服务
  • 河南天元建设公司网站宁波seo高级方法
  • 用drupal做的网站百度联盟广告收益
  • 芜湖互联网公司山东seo首页关键词优化
  • 海南房地产网站建设铜陵seo