C++
文章平均质量分 63
我想成为你噶叻叻猪
这个作者很懒,什么都没留下…
展开
-
C++学习笔记6
继上篇的剖析,这篇开始手写移植Nginx内存池。原创 2024-05-29 13:37:32 · 200 阅读 · 0 评论 -
C++学习笔记5
116102416ngx_alignsizeofngx_pool_t2sizeof11uintptr_tuintptr_t1uintptr_t1ngx_alloc申请的内存不大于4095则调用ngx_palloc_small,分配小块内存。否则size>4095调用ngx_palloc_large=>ngx_alloc=>malloc,申请大块内存。!!当前内存池的块不够分配。原创 2024-05-28 15:04:25 · 793 阅读 · 0 评论 -
c++笔记记录4
unique_lock就是删除拷贝构造赋值重载,但是加了右值引用,对临时变量可以拷贝构造赋值重载,相比与scope_ptr;生产者,消费者线程模型,不仅可以使用在简单的临界区代码段的互斥操作中,而且还能用在函数调用的过程中。竞态条件:多线程程序执行结果是一致的,不会随着cpu对线程不同的调用顺序而产生不同的运行结果。 1、线程间的互斥:竞态条件=》临界区代码段=》互斥锁mutex 轻量级的无所实现CAS。auto :可以根据右值,推导出右值的类型,然后左边变量的类型也就也已知了。原创 2024-05-27 22:27:06 · 394 阅读 · 0 评论 -
设计模式——单例模式(懒汉,饿汉)
1.单例模式:一个类不管创建多少对象,永远只能得到该类型一个对象的实例 常用:日志模块,数据库模块//饿汉:class singleton{public: //用户可以通过该接口调用静态对象 static singleton* getInstance(){//#3获取类的唯一实例对象的接口方法 return &instance; } private: static singleton instance; //#2定义一个唯一的类的实例对象 singleton(){}//#原创 2024-05-26 18:58:36 · 128 阅读 · 0 评论 -
c++笔记记录3
PFUNC 是一个指向函数的指针,该函数接受一个类型为 A1 的参数并返回类型为 R 的值。 bind2nd :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第二个参数上,从而创建一个新的一元函数对象。 bind1st :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第一个参数,从而创建一个新的一元函数对象。下面都是返回一个第一个大于70的元素,如果没有这样的元素,则迭代器it1/2将等于vec.end()。原创 2024-05-21 22:23:23 · 837 阅读 · 1 评论 -
c++笔记记录2
线程A和线程B访问一个共享的对象,如果线程A正在析构这个对象的时候,线程B又要调用该共享对象的成员方法,此时可能线程A已经把对象析构完了,线程B再去访问该对象,就会发生不可预期的错误。1.不带引用计数的智能指针 auto_ptr ,scoped_ptr,unique_ptr。由于weak_ptr可以不占资源引用计数,也就是解决带引用计数的智能指针的交叉引用问题。所以我们在定义对象的时候,用强智能指针,引用对象的时候,使用弱智能指针。2.带引用的只能指针 shared_ptr,weak_ptr。原创 2024-05-14 20:44:23 · 268 阅读 · 2 评论 -
c++笔记记录1
右值引用参数的拷贝/赋值构造,直接通过修改指针mptr=str.mptr;用临时对象拷贝构造一个新对象 Test t=Test(30), 相当于Test t(30)直接构造,且不用对临时对象的析构。5,接收返回值是对象的函数调用的时候,优先按初始化的方式接收,不要按赋值的方式接收。4,函数返回对象的时候,应该优先返回一个临时对象,而不要返回一个定义过的对象。8,std::move(),移动语义,将左值强转成右值引用类型。可以右值绑定到一个右值引用上。2,函数调用,实参=》形参, 是初始化的过程。原创 2024-05-13 21:27:05 · 335 阅读 · 1 评论