240 发简信
IP属地:湖北
  • 120
    基于Qt的OpenGL学习(1)—— Hello Triangle

    简介 要学习OpenGL的话,强烈安利这个教程JoeyDeVries的learnopengl,这里是中文翻译好的版本。教程中使用OpenGL是通过GLFW这个库,而在Qt中对...

  • Linux C/C++ 学习路线(已拿腾讯、百度 offer)

    一、秋招 Linux C/C++ offer 情况 二、Linux C/C++ 方向的一些思考 三、计算机基础知识的梳理 四、C++ 方向的深入学习路线 五、项目 + 亮点 ...

  • 4.2.3、epoll:水平触发与边缘触发

    select和poll都只提供了一个函数:select或者poll函数。而epoll提供了三个函数,epoll_create,epoll_ctl和epoll_wait,epo...

  • 120
    10种常用设计模式

    总体来说设计模式分为三大类: 1. 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2. 结构型模式,共七种:适配器模式、装饰器模式、代理模...

  • 120
    继承类

    继承方法 三种数据成员 1. public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2. private:private表示私有,...

  • 120
    简单类

    特殊成员函数 特殊成员函数与普通函数、运算符重载函数的一个显著的区分方法就是——没有返回值。 C++98必要组成:构造函数、拷贝构造函、赋值构造函数、析构函数。 C++11 ...

  • 智能指针

    发展 boost::shared_ptr C++11后 std::shared_ptr 什么是智能指针 智能指针是一个类,该类里封装了普通指针。以shared_ptr为例 为...

  • function<T>

    发展 boost::function func c++11 后: std::function包含于头文件 #include<functional>中 什么是function...

  • 线程库

    C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是: , ,<mutex>,<condition_variable>和<future>。 创建线程  :该...

  • lambda

    在Lambda表达式的函数体内,是不能够访问到外部的变量的,如果想要使用函数体外定义的变量,就需要将它们进行"捕获" [ ]:空捕获列表,即lambda表达式不能够使用所在函...

  • 120
    IO优化

    阻塞I/O,非阻塞IO,IO复用,信号驱动,异步IO 1. 其中阻塞IO就是那种recv, read,一直等,等到有了拷贝了数据才返回; 2. 非阻塞就是不用等,立即返回,设...

  • 优化

    算法优化 进程调度算法:时间片轮换调度算法 页面置换算法 IO调度算法 物理内存碎片:slab 虚拟内存碎片:内存池 内存缓冲区算法优化:radix tree 预防死锁算法:...

  • 120
    内存空间

    逻辑地址:便于编程 线性地址:与地址总线根数相关,N根地址线,则线性地址范围为2的N次方 物理地址:即实际硬件物理地址 逻辑地址到线性地址 理论原理:采用分段机制 目的:分隔...

  • 120
    进程同步

    概览进程同步器件的实现方法关系图 原子操作 原子操作:顾名思义就是不可分割的操作,该操作只存在未开始和已完成两种状态,不存在中间状态; 原子类型:被原子操作的变量就是原子类型...

  • 120
    进程间通信

    信号 信号诞生 信号的生成来自内核,让内核生成信号的请求来自3个地方: 1.用户:用户能够通过输入CTRL+c、Ctrl+\,或者是终端驱动程序分配给信号控制字符的其他任...