C++实现Vector类,使用Placement new 和 move 语义

本文记录了在学习面向对象的程序设计C++时,通过placement new和move语义实现Vector类的过程。文章讨论了placement new的概念,并指出在Vector类实现中的关键点,包括析构函数的优化、右值引用构造函数中防止意外调用的措施。作者分享了作为小白程序员的学习心得,并提供了代码实现。
摘要由CSDN通过智能技术生成

    在计蒜客上学习 轮子哥的 面向对象的程序设计C++ 第二章,最后的一道题是 使用move实现Vector类。

    在这一章中学习了 forward(完美转发),move(移动语义),最后一小节学习了Placment new的用法。最终按照题目要求完成了Vector类的实现,有些心得体会,自此记录于此。

    前言:如果是计蒜客的同学上网搜寻资料打开这篇文章,请关闭该主题,自行完成题目,遵守《学术准则》。



分割线

==========================================================================

什么是placement new?

所谓placement new是在用户指定的内存位置构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可。

即是把普通new分为两步,举例来说:

    1)T* it = static_cast<T*>( malloc( sizeof(T) ) ); 

    2)new( it )T( );

    分配sizeof(T)大小内存空间,地址赋给 it ,在 it 指向的空间构造 T。

    更详细介绍在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值