V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  exch4nge  ›  全部回复第 2 页 / 共 14 页
回复总数  263
1  2  3  4  5  6  7  8  9  10 ... 14  
2023-03-30 10:26:36 +08:00
回复了 Symbo1ic 创建的主题 C++ 求助,想获得一些关于 C++学习的建议
@Symbo1ic
raw 用在能确定指针有效的情况,指针指向对象的生命周期肯定比当前类对象要长,能不用就不用。

其余不用共享的用 unique ,明确表示有所有权。需要所有权转移也用,函数参数返回值等。
(不用转移所有权,但用来延后初始化的场景建议用 optional )

share_ptr 共享用,随处都用的话得避免循环应用,可以用 weak 解决。有时也用 atomic store load 来做原子操作多线程安全切换里面的对象

内存使用大小上,share 最大,有 custom delete 的 unique 稍微大,没有的 unique 跟 raw 一样
性能上 share 最差,unique 与 raw 接近
2023-02-13 12:49:51 +08:00
回复了 catfly 创建的主题 程序员 新 bing 你们有预约成功的吗?
收到 bing 通知邮件说可以访问 new Bing 了,不过点开链接,好像跳到一个错误页面后快速跳到老 bing 页面,没有 chatGPT
2022-11-29 14:14:28 +08:00
回复了 rayduan 创建的主题 程序员 tabnine 黑五半价
看错了,免费的提示最多一行
2022-11-29 14:12:07 +08:00
回复了 rayduan 创建的主题 程序员 tabnine 黑五半价
@Purelove 换个 Code Autocomplete 插件试试,也是 tabnine 的客户端。官方的插件好像会跟 rust-analyzer 打架,提示出不来
2022-07-30 23:30:47 +08:00
回复了 fstar 创建的主题 程序员 TCP 关闭连接的不同版本,哪个才是对的?
这三个那里不同?
分着理解吧,unique 就是判断引用计数是不是一,即没有其它 shared ptr 只向同一个对象。

reset 就是指向一个新的对象,原来的引用计数减一可能会释放。


那段代码做的事情就是,如果不是 unique 那就复制一份,保证 p 指向的是 unique 的,做+=操作
2022-04-01 00:26:37 +08:00
回复了 java253738191 创建的主题 程序员 面试题: C++怎么实现热更新内存数据?
@ipwx 多线程情况下修改 shared_ptr 应该是不安全的,建议用 std::atomic_load 与 std::atomic_save 替代修改与读的操作。
2022-01-07 10:26:23 +08:00
回复了 Canon1014 创建的主题 程序员 高并发场景下使用 CAS 锁库存,不预防 ABA 会怎么样
我还以为是原子操作 CAS ,是数据库 CAS ?不过都差不多
2022-01-07 10:22:20 +08:00
回复了 Canon1014 创建的主题 程序员 高并发场景下使用 CAS 锁库存,不预防 ABA 会怎么样
仅算库存数量场景没问题。有问题的场景是 CAS 的变量相关的东西发生改变。比如你还维护了这十个库存商品的唯一序列号之类的。实际场景下大部分 CAS 的是指针,指针没变但是由于内存分配器又复用了刚释放的位置,新分配的对象还是在一样的指针上,但是对象内容跟之前老的指针完全不一样
2020-07-23 13:30:12 +08:00
回复了 UIXX 创建的主题 问与答 有多少人还在用 hhkb
在用 type-s ;非常喜欢手感
2020-07-10 12:50:17 +08:00
回复了 formulahendry 创建的主题 推广 抽奖送书!《Visual Studio Code 权威指南》
分母
2020-06-30 19:38:38 +08:00
回复了 yanshenxian 创建的主题 程序员 字符串哈希为 Long 型整数算法有推荐的吗
BLAKE2 算法,支持生成长度 1 ~ 64 字节的结果
2020-06-29 01:22:59 +08:00
回复了 perryzou 创建的主题 Java 大佬们,问个 Java 面试题
提个不新建文件,用原文件格式的方法,核心就是哈希表
把 3M 分成每个桶大小为 3 字节的,1024*1024 个桶;每个桶里用 3 字节保存此电话号码开头在文件中的偏移位置,不过直接存偏移三个字节肯定不够,可以除一个系数存,三个字节够表示 100w+的位置
哈希碰撞问题,首先是选用好的哈希函数,不过 95.37%的密度碰撞出现可能性还是蛮高,具体策略可以再评估各种后再决定,可参考 folly F14 的解决方式,约 12/13=92%来着?
2019-06-28 17:33:41 +08:00
回复了 MageeHuang 创建的主题 问与答 win10 有没有可以定时点击特定位置的程序?
@MageeHuang #10 如果是这种整个页面不用刷新的需求的话,那更好解决,直接开 chrome 浏览器的 dev tools 在 console 里写 javascript 就能解决你的问题。大概需要两句。

var btn = $('这里填写按钮的 selector');
setInterval(()=>btn.click(), 1000);
2019-06-28 16:54:47 +08:00
回复了 rffan 创建的主题 问与答 关于 TCP
只有我一个人没看明白楼主想说什么吗?
@exch4nge #8 却是 -> 确实, 紧紧 -> 仅仅;
上面说的两种中,还是 2 好一些,难免遇到 server 卡住,发一部分不给你发剩余的,Proxy 又没有分析 http 响应包不知道包边界在哪。
@exch4nge #5 补充一下,你这个 while True 里面逻辑是严格有顺序的,就是先从 Client 读数据,然后发送到 Server,然后从 Server 等待回应,然后再把回应发到 Client。这种模式在 HTTP 1.1 却是没什么问题,是请求-响应模式。不过,资源大于 64k 的时候,你紧紧把部分资源回应发到 Client,Client 还会等着你发剩余的部分,不会向你这个 Proxy 发送数据,所以你会在那个语句卡住。
1、 要么读写的时候读到数据干为止再转发,
2、要么同时分别处理 C -> S 和 S -> C 两个方向的请求,比如用两个线程(或协程)一个负责从 Client 读数据转发到 Server,另一个负责从 Server 读数据转发到 Client
如果资源大于 64k ( 1024*64 )的时候,一次性读不完所有内容,所以你仅仅把一部分请求内容转发,一端会继续等待,并不会发送数据
2019-06-27 17:19:24 +08:00
回复了 v2byy 创建的主题 C 在 c++中如何高效的将一个 vector 连接到另外一个 vector 上后面?
地址连续指的是虚拟内存地址连续。
一般应用层程序能看到的只能是虚拟内存地址,不过物理内存与虚拟内存一般是按页映射的,所以很大可能上物理地址也是连续的。

在 visual studio 中,通过 memory 窗口查看的数据,这个地址是进程的虚拟地址空间。

你的主问题,个人觉得无法满足吧,用了 make_move_iterator 也只是把元素当成右值,后来应该会用移动构造(?)方式构造一个新对象放到 vector 后面,具体发生不发生拷贝得看类 T 的移动构造(?)怎么写的;(这点可能说的不对,看楼下的)
2019-06-14 11:53:29 +08:00
回复了 powertoolsteam 创建的主题 推广 每个程序员都该学习的 5 种开发语言
emm... Lisp 呢
1  2  3  4  5  6  7  8  9  10 ... 14  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2817 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 09:59 · PVG 17:59 · LAX 02:59 · JFK 05:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.