C++语法糖

本文深入探讨C++中的高级特性,如std::bind、std::shared_ptr、unique_ptr等智能指针的使用技巧,以及原子变量和锁机制的最佳实践。解析C++11新增功能,包括原子操作、条件等待和 chrono 计时库的应用,同时揭示 False Sharing 等性能陷阱。

std::bind的用法 : 给一个函数指针,加上固定的参数(不固定的参数用std::placeholders::_1、std::placeholders::_2来表示)

std::shared_ptr的用法:new出来的裸指针直接交给shared_ptr的构造函数,则后续无论怎么在多个shared_ptr之间共享,最后都会被析构(所有shared_ptr都reset了他或者所有shared_ptr对象自身都析构后)

默认reseth会调delete p; 如果传入的是数组(new int[100]),则要传入delete[]函数:ptr_.reset(data_array, [](V* data){ delete [] data; });

own的还是ptr_这个shared_ptr,加减释放用它,但是使用的是data() + begin, 用于指向数组中的非头部元素,但是释放仍然和整个数组同进退:ret.ptr_ = std::shared_ptr<V>(ptr_, data() + begin); (SArray<V> segment里用到)

unique_ptr, shared_ptr, weak_ptr的区别

unique_ptr不能复制给别的,要么move控制权,要么主动或被动析构,即只有一个指针指向同一对象时适用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值