GeruzoniAnsasu 最近的时间轴更新
GeruzoniAnsasu

GeruzoniAnsasu

V2EX 第 153649 号会员,加入于 2015-12-31 11:52:50 +08:00
今日活跃度排名 5318
根据 GeruzoniAnsasu 的设置,主题列表只有在你登录之后才可查看
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
GeruzoniAnsasu 最近回复了
因为前端圈子对 js 「终究只是个处理字符串的语言」这项自我认知越来越明确,不再幻想浏览器统治一切了
我觉得简历这方面最好用的「产品」应该是印度老哥们的 latex 模板……
你们 java 八股不是很喜欢考 hashmap 来着
看了看 OP 的发帖记录……

引用一句以前楼里别人的回复好了

/t/838253#r_11431500 (#3 )
3 天前
回复了 skymanv2 创建的主题 VPS 搬瓦工的机场还要留吗?
@MXMIS 巧了,瓦工的机场 IP 已经臭完了
10 天前
回复了 YuanJiwei 创建的主题 问与答 C++ 并发编程
这…… 要吐槽的地方恐怕有点多

首先你的 CMSet 看起来是作为接口用的,但它并不是个抽象类
然后在 derived 类中,由于你要使用多态特性且试图自己管理裸指针,那么你必然要实现虚析构并满足 rule of three

然后你在计算 key 时试图直接使用 std::hash<T> ,但没有对 T 做任何 constraints/traits ,这会导致实际使用这个类时几乎必然失败(你只用这个 set 来存整数?)

构造和 add 函数缺乏模板转发 ( T&& t; std::forward<T>(t) ) 不过考虑到上一条,也许这个类确实不需要转发

再然后你试图用 atomic 来「以某种想象的方式保证一致性」—— 也是错的,在你的查找函数里有一个链表遍历,在并发条件下无锁遍历===不同步(你有没有考虑……正在附加上去的节点被脱链了?)另外你也忘了读写 count 和 delete 节是两个不同时点,很可能发生 A 读 count==1; B 增加 count 到 2; A 将节点删除 这样的时序。( count 不可交换,只能 atomic 增减)

析构函数完全没考虑——你是想让使用者保证这个对象一定不会在还有元素的时候销毁?



我的建议是
- 忘记 c++有 new 这个关键字,只有 make_shared 和 make_unique
- 只要函数参数是个模板,就记得想想能不能套 std::forward
- 重修 E 系列的书
- 数据结构中包含链表时,老老实实加锁
11 天前
回复了 will30115 创建的主题 职场话题 初二退役信息学竞赛生求建议
初二,退役……


多的不说,我就只问一个问题:

你看到你想学的路的尽头了吗? 它是什么?
怎么在用普通人的思维来揣测魔法师,人家说不准能用魔法直接把文章录好呢
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1088 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 18:37 · PVG 02:37 · LAX 10:37 · JFK 13:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.