C++ JSON解析 C++ JSON解析JSONCPPJSONCPP源码链接:https://github.com/open-source-parsers/jsoncpp JSOCPP源码下载以后,首先复制一份include文件夹下的json文件夹,头文件留着后续备用。 使用Cmake生成项目。在IDE中编译jsoncpp_lib,可以在项目的lib/Debug文件夹下找到jsoncpp.lib,在bin 2024-03-26 语言基础 #C++
C++ LRU C++ LRULRU:最近最少使用缓存,实现 LRUCache 类: LRUCache(int capacity) :以正整数作为容量capacity,初始化LRU缓存。 int get(int key):如果关键字 key 存在于缓存中,则返回关键字的值,否则返回-1。 void put(int key, int value):如果关键字 key 已经存在,则变更其数据值 value ;如果不 2024-03-26 语言基础 #C++
C++数据库连接池 C++数据库连接池连接池对于数据库操作都是在访问数据库的时候创建连接,访问完毕断开连接。但是如果在高并发情况下,有些需要频繁处理的操作就会消耗很多的资源和时间,比如: 建立通信连接的TCP三次握手 数据库服务器的连接认证 数据库服务器关闭连接时的资源回收 断开通信连接的TCP四次挥手 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。 2024-03-26 语言基础 #C++
C++实现string类 C++实现string类string类写一个string类,能够完成string类的操作:1. 构造函数,能使用=构造,构造函数传入的参数为const char* 类型2. 拷贝构造函数3. 析构函数4. operator =5. operator +6. operator +=7. operator <<8. 从string类型转换成const char 2024-03-26 语言基础 #C++
Effective C++学习 Effective C++学习尽量用const, enum, inline 替换#define define只在预处理阶段起作用,简单的文本替换,因为在预处理阶段就已经做了替换,发生错误的时候,报错信息不好找。 可以用const来代替宏定义,const在编译、链接过程中起作用; const定义的常量是变量带类型,而#define定义的只是个常数不带类型; define只是简单的字符串替换没有类型检 2024-03-26 语言基础 #C++ #读书笔记
红黑树浅浅学习 红黑树浅浅学习红黑树概念 二叉树:二叉树是每个节点最多有两个子树的树结构。 二叉查找树:又称“二叉搜索树”,左孩子比父节点小,右孩子比父节点大,还有一个特性就是”中序遍历“可以让结点有序。 平衡二叉树:它是一颗空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。 红黑树是一种自平衡的二叉查找树,它属于平衡树,但是却没有平衡二叉树那么“平衡”。可以保证在最坏情况下基 2024-03-26 语言基础 #C++ #读书笔记
C++实现线程池二 C++实现线程池二线程池大型的软件项目需要处理非常多的任务,例如:对于大量数据的数据流处理,或者是包含复杂GUI界面的应用程序。如果将所有的任务都以串行的方式执行,则整个系统的效率将会非常低下,应用程序的用户体验会非常的差。 如果一个系统支持多个动作同时存在,那么这个系统就是一个并发系统。如果这个系统还支持多个动作(物理时间上)同时执行,那么这个系统就是一个并行系统。 C++ 实现生产者消费者模型 2024-03-26 语言基础 #C++ #Linux
C++实现线程池一 C++实现线程池一线程池当并发的线程数量增多,每个线程执行一个很短的任务之后销毁,频繁的创建和销毁线程就会降低系统效率。线程池就是希望先一个线程执行完一个任务,不被销毁,去执行其他任务。线程池的任务处理过程中,将任务添加到队列,在创建线程后自动执行这些任务。 线程池的组成: 任务队列:存储需要处理的任务,由工作的线程来处理这些任务, 工作线程:读取任务队列,执行任务,充当消费者角色。 管理线程: 2024-03-26 语言基础 #C++ #Linux
Linux学习八(线程同步) Linux学习八 : 线程同步线程同步临界资源:被多个线程共享的资源,如共享内存,共享文件,共享设备等。临界区:在多线程程序中,访问共享内存的代码段。线程同步是指多个线程在并发执行过程中,为了保持数据一致性,协调和合作的对数据进行访问。 互斥锁:mutex:一个线程获得互斥锁,其他线程等待。 条件变量:Condition Variable:线程发现条件不满足时,调用条件变量的等待操作,直到其他线 2024-03-26 Linux #C++ #Linux
Linux学习七(线程) Linux学习七 : 线程线程概述线程是轻量级的进程:在操作系统中,将一个进程划分为多个执行单元,每个单元拥有自己的堆栈、程序计数器和资源使用情况,但共享同一进程的地址空间和文件描述符等资源,这些执行单元就是线程。进程是资源分配的最小单位,线程是系统调度的最小单位。 线程特点: 线程的创建、切换和销毁都更加高效,占用的系统资源少。 线程提供了一种并发执行的机制,使得多个任务可以在同一个进程中并行 2024-03-26 Linux #C++ #Linux