
C++
code
andyleung520
x
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数?
【代码】c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数?原创 2024-02-21 19:18:32 · 496 阅读 · 0 评论 -
C++ 面试总结
(条件概率)已知城市中蓝色:绿色车的比例是 15:85,目击者称看到蓝色车肇事逃逸,但是人区别蓝色和绿色的正确率是 80%。下面是有一个全局变量 a 和两个线程,这两个线程同时开始并发执行各自的代码, 在两个线程都执行结束后,请问 a 的值为______(因为数据库主要消耗在磁盘 I/O 上,所以要优化磁盘 I/O ,如果用红黑树,树的深度太高,消耗磁盘 I/O 太多,速度会太慢)(地点在武汉,印象最深的一场面试,面试官很友好,给我讲了半小时的音视频岗位的优势。但是是 IT 部门,不是研发部门,在佛山。原创 2021-10-28 19:53:43 · 2604 阅读 · 1 评论 -
c语言实现hashtable
【代码】c语言实现hashtable。原创 2023-08-15 19:47:08 · 278 阅读 · 0 评论 -
c语言实现策略模式
【代码】c语言实现策略模式。原创 2023-08-15 19:42:52 · 355 阅读 · 0 评论 -
模板妙用 ----- Wrapper
该结构体包含两个模板类型参数,Class 表示类的类型,EventFunc 表示类的成员函数指针类型,包含两个成员变量 p 和 f,用来存储类的指针和成员函数指针,operator() 实现了对成员函数的调用。该结构体包含两个模板类型参数,Class 表示类的类型,AlgorithmFunc 表示类的成员函数指针类型,包含两个成员变量 p 和 f,用来存储类的指针和成员函数指针,Run 实现了对成员函数的调用。在示例代码中,定义了一个基类 Algorithm,包含一个纯虚函数 Run,表示算法的执行函数。原创 2023-07-21 14:52:21 · 168 阅读 · 0 评论 -
Compare-and-Swap 和 Read-Modify-Write
原子的read-modify-write操作——简称RMW——要比原子的load/store更复杂。RMW允许读一块共享数据的同时还原地修改它的值。以fetch_add为例,它首先读取一个共享变量的当前值,对这个值做加法,再将新的值写回去——这3步是原子完成的。你可以用锁来完成同样的操作,但这就不是无锁的了。而RMW操作则天生就被设计为是无锁的。RMW操作可以受益于任何CPU的无锁指令,如ARMv7的ldrex/strex。原创 2023-07-13 20:22:29 · 731 阅读 · 0 评论 -
CRTP 与 mixin
C++中有一种很特别的模式,称为Curiously Recurring Template Pattern,缩写是CRTP。从它的名字看,前三个词都是关键字。Curiously,意思是奇特的。Recurring,说明它是递归的。Template,说明它与模板有关。最常见的CRTP形式就很符合这三个关键字:确实挺奇特的:派生类继承自一个用派生类特化的基类,相当于自己特化了自己。这里面应用到了C++模板的一个特性:与模板参数有关的代码的编译会推迟到模板实例化时进行。最经典常见的是 enable_shared_f原创 2023-07-12 19:42:44 · 373 阅读 · 0 评论 -
mixin 实践
可以解决菱形继承等问题,代码如下。原创 2023-07-12 17:43:08 · 92 阅读 · 0 评论 -
mixin 思想与实践
一个独立的类(如Person)与一个mixin的区别在于,一个mixin只建模小的功能点(如printing或displaying),不是用来独立使用的,而是给其它需要这个功能的类做组合的。成一个新的类,像乐高一样,满足需求。如果你新增了基础类,只要它是和其它基础类正交的,就可以扩展到这个组合类里。可以用继承来做,每个概念变成一个接口,然后具体类去实现这些接口。mixin要解的问题:如何建模一系列正交概念。,它就是用来与其它类或mixin做组合的。mixin是给一组基础类,每个都建模了一个。原创 2023-07-12 17:40:48 · 192 阅读 · 0 评论 -
vector和unique_ptr及clear操作
【代码】vector和unique_ptr及clear操作。原创 2023-05-09 09:26:57 · 304 阅读 · 0 评论 -
C++ function 函数
【代码】C++ function 函数。原创 2023-03-30 16:36:57 · 210 阅读 · 0 评论 -
C++ promise
【代码】C++ promise。原创 2022-11-30 11:39:28 · 704 阅读 · 0 评论 -
sharedPtr
shared_ptr原创 2022-11-30 11:39:04 · 886 阅读 · 0 评论 -
C++ socket demo
【代码】C++ socket demo。原创 2022-11-30 11:38:16 · 386 阅读 · 0 评论 -
C++ thread common
【代码】C++ thread common。原创 2022-11-30 11:37:55 · 160 阅读 · 0 评论 -
C++ threadLocal
【代码】C++ threadLocal。原创 2022-11-30 11:37:02 · 477 阅读 · 0 评论 -
Linux 同步机制
【代码】Linux 同步机制。原创 2022-11-30 11:26:12 · 586 阅读 · 0 评论 -
C++ unique_ptr
【代码】C++ unique_ptr。原创 2022-11-30 11:37:23 · 98 阅读 · 0 评论 -
C++11 package_task
【代码】C++11 package_task。原创 2022-11-30 11:39:29 · 152 阅读 · 0 评论 -
FuncThreadCallBack
【代码】FuncThreadCallBack。原创 2022-11-29 11:07:40 · 139 阅读 · 0 评论 -
C++ fifo and epoll
【代码】C++ fifo。原创 2022-11-29 11:05:03 · 199 阅读 · 0 评论 -
C++ 死锁
【代码】C++ 死锁。原创 2022-11-29 10:53:14 · 356 阅读 · 0 评论 -
C++ 消费者和生产者
【代码】C++ 消费者和生产者。原创 2022-11-29 10:51:56 · 672 阅读 · 0 评论 -
C++ PHASE Align
【代码】C++ PHASE Align。原创 2022-11-29 09:47:44 · 331 阅读 · 0 评论 -
C++ 模板
【代码】C++ 模板。原创 2022-11-29 09:43:36 · 143 阅读 · 0 评论 -
C++ 实现shareLRU
【代码】C++ 实现shareLRU。原创 2022-11-29 09:42:26 · 467 阅读 · 0 评论 -
C++ 实现反射
【代码】C++ 实现反射。原创 2022-11-29 09:52:04 · 178 阅读 · 0 评论 -
C++ 11实现观察者模式
【代码】C++ 11实现观察者模式。原创 2022-11-28 20:23:00 · 207 阅读 · 0 评论 -
Linux同步机制
【代码】Linux同步机制。原创 2022-11-28 20:21:25 · 291 阅读 · 0 评论 -
C++ 左值右值
【代码】C++ 左值右值。原创 2022-11-28 20:18:44 · 210 阅读 · 0 评论 -
C++ DSL 实现
【代码】C++ DSL 实现。原创 2022-11-28 20:17:23 · 826 阅读 · 0 评论 -
C++20 cortuine
【代码】C++20 cortuine。原创 2022-11-28 20:16:12 · 223 阅读 · 0 评论 -
C++ 11 atomic_flag
【代码】C++ 11 atomic_flag。原创 2022-11-28 20:14:47 · 127 阅读 · 0 评论 -
C++11 atomic_exchange 实现无锁链表
【代码】C++11 atomic_exchange 实现无锁链表。原创 2022-11-28 20:13:45 · 1728 阅读 · 3 评论 -
atomic 及内存序
【代码】atomic 及内存序。原创 2022-11-28 20:12:13 · 223 阅读 · 0 评论 -
C++11 async
【代码】C++11 async。原创 2022-11-28 20:10:10 · 115 阅读 · 0 评论 -
ArrMap优化if
【代码】ArrMap优化if。原创 2022-11-28 20:07:32 · 90 阅读 · 0 评论 -
Efftive STL 关联容器
理解相等和等价的区别find方法的“相同”的定义是相等,是以operator==为基础的,set::insert的“相同”的定时则是等价,是以operator < (less)为基础的即if(!(v1 < v2) and !(v2 < v1)),关联容器的等价即为: !(c.key_comp()(x,y)) and (!(c.key_comp()(y,x))) 举个例子: //Compare 类型 内部仿函数不区分大小写比较 set<strin.原创 2021-10-31 09:34:48 · 127 阅读 · 0 评论 -
Effective STL学习_vector string
使用reserve来避免不必要的重新分配 对于vector和string,增长过程类似于realloc 1.分配一块大小为当前容量的某个倍数的内存 2.把旧容器的元素从旧的内存复制到新的内存中 3.析构掉旧内存中的对象 4.释放旧内存 以上动作比较耗时,且以前的迭起器,指针,引用都会失效 reserve(n)是强迫容器把它的容量变为至少n,即假如对容器的未来扩容时,使用其,便不会重新分配注意string实现的多样性。 引用技术方式和指针char等,例如腾讯还专门重写了str.原创 2021-10-30 15:15:29 · 142 阅读 · 0 评论 -
stl 各种删除
#include <iostream>#include <vector>#include <string>#include <list>#include <deque>#include <string>#include <set>#include <map>#include <algorithm>using namespace std;//template <class原创 2021-10-30 11:36:51 · 299 阅读 · 0 评论