网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月25日
漏签
0
天
c++吧
关注:
606,624
贴子:
2,109,071
看贴
图片
吧主推荐
游戏
12
回复贴,共
1
页
<<返回c++吧
>0< 加载中...
我该如何使用智能指针替换 new?
只看楼主
收藏
回复
雨花抬老汉
&
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我看到好多 C++ 的文章将 new 要和 delete 配对用,否则要用智能指针。这里我想把 pArr 的 new 换成 shared_ptr ,我应该怎么写?
是用 shared_ptr<int> 还是 shared_ptr<int*> ?传入的参数还是代表数组名的普通指针,应该怎么复制数组的值?返回值类型要不要换?
求教
ThegiantMaster
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
网上有例子,百度就行
aaaaaaa421
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
https://stackoverflow.com/a/13062069
,但这里似乎用 unique_ptr 更适合。
贴吧用户_Q5DNPG6
=
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
建议换 std::vector
雨花抬老汉
&
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一个通宵搞好了。看样子是 C++17 的新功能作福了。谢谢几位老哥
寒水暗霜
==
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最好使用make_shared和make_unique去创建智能指针,另外尽可能使用unique_ptr而不是shared_ptr
o規則之上o
^
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
make_unique
Waaaaf
^
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
考虑使用std::unique_ptr管理专属所有权资源,并优先选用std::make_unique
幻の上帝
->*
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
分配器都没上,直接make_unique。复制么就手动,要么抄一个。
namespace ystdex
{
template<typename _type>
inline _type*
clone_monomorphic(const _type& v)
{
return new _type(v);
}
template<typename _tPointer>
inline auto
clone_monomorphic_ptr(const _tPointer& p)
-> decltype(ystdex::clone_monomorphic(*p))
{
using ptr_t = decltype(ystdex::clone_monomorphic(*p));
return p ? ystdex::clone_monomorphic(*p) : ptr_t();
}
}
嫌没事干也可以WG21抄个polymorphic_value/indirect_value。
更没事干塞any里。
应该不会遇到一时傻了allocate_unique+pmr::polymorphic_allocator然后因为多态类随机炸翔一整天的。
昵称不如用户名
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
智能指针是在所有标准库容器都无法满足你的需要,万不得已、万般无奈之下的选择。
智能指针的设计初衷是在你没有选择的情况下依然不需要裸new,而不是在std::vector<int>就在那里放着的情况下你却视若无睹。
在我之前已经有不止一个吧友跟你提到std::vector,甚至还有吧务。那么我再给你提一遍。在标准库容器可以满足你的需要的前提下,不要冷落人家。
标准库对于C++是至关重要的。在标准库还没有了解的情况下,应当积极地学习标准库,而不是用手写的代码碰瓷标准库
比如说,标准库<algorithm>中有std::sort()函数,你却非要自己写一个排序算法。std::sort()使用并发快排,你却使用古老的冒泡排序。你有多大的把握认为你写的比标准库写得还强?如果没有,就老老实实地去使用标准库。
标准库凝聚着世界顶尖C++程序员的四十年的心血,却免费送给你用,一分钱都不用掏。要是国内出的,都不可能低于1000人民币。好东西免费送给你,你还是不用。标准库有那么恶心吗?
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示