
C++基本功
patientcat
这个作者很懒,什么都没留下…
展开
-
右值和移动语义进阶
右值和移动文章目录右值和移动1. 前言2. 左值和右值3. 右值引用4. 完美转发4.1 万能引用和右值引用区别1. 前言这里就不谈右值和移动的一些基础概念。这里主要谈一下,是不是我们可以无脑使用std::move2. 左值和右值我们都知道C++实际上分为左值和右值的。一般情况下,我们认为可以这样区分能够被取地址的值称为左值,不能被取地址的被称为右值。当然这里C/C++的原生字符串例外。...原创 2019-12-31 22:47:30 · 411 阅读 · 0 评论 -
单例模式的前世今生
前世今生文章目录前世今生为什么要用单例模式单例模式和全局变量(或者是全局静态变量)写在前面的话什么样的单例模式符合要求前世——C++11之前的单例模式lazy模式和hungry模式比较构造函数和析构函数设置为非公有设置为静态指针成员和静态成员函数为什么使用指针?返回指针还是返回引用noncopyableC++11做法C++11之前做法线程安全atexit或者DeleteSingleton需要吗?...原创 2019-03-28 16:37:33 · 821 阅读 · 1 评论 -
前向声明和命名空间的关系
问题描述//a.hhclass B;namespace test{class A{public: A(B* b);private: B* bb_;};}//end test//a.cc#include "a.hh"#include "b.hh"namespace test{A::A(B* b) // 这里会报错: bb_(b){}}// ...原创 2019-06-15 17:03:27 · 1476 阅读 · 0 评论 -
abcBank项目完成总结
项目总结文章目录项目总结摘要整体通信流程客户端->服务器客户端服务器网络编程1. PackStream和UnpackStream2. 添加中间层3. 明确noncopyable4. 使用指针来方便操作buffer5. 轮子6. 用继承来替代switch case7. 调试大杀器8. 能动就好9. 减少编译依赖前端编程花了大概一个月的时间,终于在科研之余完成了这个项目。虽然不是非常完美,但...原创 2019-07-23 21:20:58 · 758 阅读 · 0 评论 -
从零开始写一个内存池
写了些如何写内存池,算是C++的基本功之一吧。谈了谈我对造轮子的理解。原创 2019-08-10 21:49:43 · 622 阅读 · 1 评论 -
c++ set使用多维坐标点结构
set我们知道STL中自带了俩个方便的关于set的模板类供我们使用。set——红黑树底层unordered_set——hashtable底层在遇到自定义结构体的时候,比如二维坐标点,我遇到了一些小小的问题。问题我的set中出现了重复的数据结构。struct Data{ int x; int y; bool operator<(const Data&rhs)co...原创 2019-08-27 17:04:19 · 1071 阅读 · 0 评论