- 博客(9)
- 收藏
- 关注
原创 struct std::less{}可调用对象
priority_queue 则相反,当 true时 交换 a,b,false就什么也不做,结果导致从大到小排序。调用时,传递参数 a,b ,返回 a < b 的结果,仅此而已,这个结果会被容器用来作为排序的参考,例如vector ,当结果 true就什么也不做, false就交换a,b,结果导致从小到大排序。以下是摘自 类型萃取文件的 std::less实现。
2025-04-05 07:32:50
165
原创 线程间协同工作
多线程是利用多核CPU并发、或者高主频单核CPU迅速切换线程,来达到快速执行多个无顺序关系任务的技术。多线程通常要访问一些共享的资源,例如 C++容器、内存池,数据库连接,文件句柄,GDI对象等等,而这些共享的资源状态是线程想获取、修改的,这些资源也成为线程间数据通信的桥梁。而他们访问共享数据需要有序才能保持状态的一致性,因此需要线程同步。
2025-04-02 11:52:42
295
原创 IOCP实现异步IO
3 :创建工作线程,在工作线程内循环获取已经排队的完成端口状态,这些状态包括:传输了多少字节,套接字句柄附带数据(套接字重叠结构),每次IO操作的附带数据(IO重叠结构),可以及IO数据拷贝后,继续进行读写操作。4:循环接收客户端套接字,将客户端套接字关联到完成端口,并传递一个套接字重叠结构,然后,创建一个客户端套接字进行IO操作的重叠结构,附带IO操作的说明信息或者缓冲区信息,传递给 IO操作函数。这比epoll 只是通知多个套接字IO状态完善的多,epoll没有线程池支持,只有事件通知。
2025-04-02 10:24:32
200
原创 区块链初识
然而,历史上,通胀和通缩往往是不合理发行货币造成,数字货币缺乏大规模验证,有待观察(脱离政府掌控)。紧接着、出现了依托发行方信用价值的纸币、支票、文革时候的粮票等,还有如今的依托对科技和信息系统的信任的货币,比如比特币、央行的数字货币。用户:用比特币钱包,使用比特币,比特币来源是矿工,而他需要通过货币在交易网站兑换比特币,从而间接地从矿工那里拿到比特币。纸币生产成本远低于面额,而数字货币,如比特币,最坏情况消耗能量接近面额。也可能由造假帐可能。矿工:造钱,服务器+算法,服务器不停地运行该算法,即,挖矿。
2024-04-23 09:35:22
350
1
原创 队列(FIFO)
1队列也是一种退化的表,它在队尾(rear)入队(enqueue),在队首(front)出队(dequeue).和栈一样除了clear的所有操作都具有O(1)的时间复杂度。2循环队列是队列的一个特殊,队首作为队尾的后继,若是双向队列,那么队首的前驱也是队尾。最为一种最常用的线性表,它通常用作资源缓存,因此,有必要关心队列的容量,即超出容量的情况,而其设计实现,每个程序员都有自己的一套轮子,可谓五花八门。本文介绍两种最常用实现:链表实现、数组实现。
2024-04-22 18:27:35
827
原创 栈(LIFO表)
是一种限制了插入和删除只能在末尾的表,因此它是后进先出的退化版链表。当然也就简单多了,除了clear之外,他的所有操作时间复杂度都在O(1),常作为实现其他算法的辅助工具。它的节点不支持随机访问;不支持查找,因此不需要比较关键码,每个节点的Entry条目中也不需要包含keyword域。
2024-04-21 14:35:17
265
原创 链表与模板
1 创建my_list,定义实现链表,以及对应全面测试。key作为Entry中的关键码,起到比较的作用,Entry是一个节点中的总有效信息,Node中除了Entry之外只有一个 next指针,my_list由Node串起来.链表:形如A1,A2.....An的n个有序且有限的元素组成的数据集,我们称为链表,要实现类型无关的逻辑需要结合模板。2 测试。
2024-04-20 20:27:10
336
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人