The C++ Standard Library: shared_ptr and unique_ptr

本文探讨了C++中unique_ptr与shared_ptr两种智能指针的不同之处:unique_ptr支持模板参数为数组类型并提供操作符[],而shared_ptr则不支持这些特性。这体现了unique_ptr在性能与可扩展性方面的考量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. unique_ptr支持模板参数为一个数组类型,而shared_ptr不能这样做; See Section 5.2.1,page 80

std::unique_ptr<int[]> p(new int[10]); // OK
std::shared_ptr<int[]> p(new int[10]); // Error: does not compile

2. unique_ptr支持操作符[],而shared_ptr不支持,这是unique_ptr考虑到性能和可扩展性。 See Section 5.2.1,page 81

std::unique_ptr<int, void(*)(int*)> p(new int[10], [] (int* p) { delete[] p; });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值