
c++进阶
文章平均质量分 65
932我
这个作者很懒,什么都没留下…
展开
-
SimpleAmqpClient 编译使用
下载rabbitmq-c githup源码国内新建build 和 install 安装目录打开CMKAE工具配置点击Configure修改安装目录点击Generate 点击Open Project 或者去Bulid目录下打开生成的rabbitmq-c.sln 原理上一样选择Release版本在编译rabbitmq 和rabbitmq_static在build 目录下打开打开选择Release 在生成install 目录下生成头文件 静态库 和 动态库。原创 2024-04-21 12:46:23 · 877 阅读 · 0 评论 -
google glog编译及使用
glog日志使用原创 2023-06-19 23:48:37 · 445 阅读 · 0 评论 -
C++中自定义异常的抛出与捕获
异常原创 2023-03-05 11:35:11 · 221 阅读 · 0 评论 -
c++日志系统
c++日志系统原创 2023-03-01 19:15:33 · 278 阅读 · 0 评论 -
ini文件解析器
ini文件解析器原创 2023-03-01 19:14:29 · 259 阅读 · 0 评论 -
XML实现与解析
XML实现与解析原创 2023-03-01 19:11:26 · 185 阅读 · 0 评论 -
简单的客户端服务器(多线程)基于json通信
基于json的网络通信原创 2023-01-09 21:28:38 · 721 阅读 · 0 评论 -
json工具
json工具原创 2023-01-08 16:43:35 · 942 阅读 · 0 评论 -
YAZI序列化工具
序列化原创 2022-12-31 14:35:39 · 496 阅读 · 0 评论 -
简单是事件实现机制
观察者模式原创 2022-11-15 22:23:51 · 87 阅读 · 0 评论 -
Boost搜索引擎
boost搜索引擎原创 2022-08-04 22:12:12 · 401 阅读 · 0 评论 -
高阶数据结构----------并查集和图
并查集和图原创 2022-07-16 22:51:44 · 223 阅读 · 0 评论 -
总结C/C++复习思维导图
C/C++复习原创 2022-07-16 20:31:22 · 422 阅读 · 0 评论 -
C++的类型转换
类型转化原创 2022-07-09 11:32:51 · 180 阅读 · 0 评论 -
C++智能指针
智能指针原创 2022-07-09 11:19:51 · 316 阅读 · 0 评论 -
C++单例模式
设计模式原创 2022-07-07 18:03:10 · 411 阅读 · 0 评论 -
C++11 包装器
包装器用包装器一个符号就表示一种方法,游戏开发也是类似,一个按键表示一种状态。这样方便很多。functional绑定。原创 2022-07-06 22:56:08 · 908 阅读 · 0 评论 -
c++11
C++11 就无法通过编译,导致每次定义vector时,都需要先把vector定义出来,然后使用循环对其赋初始值,非常 不方便。C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定 义的类型,使用初始化列表时,可添加等号(=),也可不添加2.2 内置类型的列表初始化注意:列表初始化可以在{}之前使用等号,其效果与不使用=没有什么区别。 2.3 自定义类型的列表初始化1. 标准库支持单个对象的列......原创 2022-07-01 19:26:37 · 121 阅读 · 0 评论 -
哈希----位图
位图应用 但是该方法有缺陷:就是第一个文件中的数重复的数会被找出来,还需要去重。思路二:一个文件的整数,set到一个位图bs1,另一个文件的整数,set到bs2. a.遍历bs2中的值,看在不在bs1中,在就是交集。 b.两个位图想与,与完是1的位置的值,就是交集。...原创 2022-06-24 12:57:39 · 268 阅读 · 0 评论 -
STL的模拟实现
string的模拟实现#pragma once#include<iostream>#include<string.h>#include<assert.h>namespace bit{ class string { public: typedef char* iterator; typedef const char* const_iterator; iterator begin() { return _str; } iterator e原创 2022-05-30 14:53:27 · 220 阅读 · 0 评论 -
哈希表的是模拟实现及封装(unordered_map 和unordered_set)
1. unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 ,即最差情况下 需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是log2N,进行很少的比较次 数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑 树结构的关联式容器使用方式基本类似,只是其底层结构不同,本文中只对unordered_map和 unordered_set进行介绍1.1 unord原创 2022-05-29 17:12:27 · 287 阅读 · 0 评论 -
基于阻塞队列的生产者消费者模型
收到前几天有的小伙伴提出的疑问,你生产者消费者模型有什么作用,生产者生产一个数据,消费者消费一个数据,这有什么作用呀。那么小编就在之前的基础上增加一点难度,生产者创建一个字符串,消费者翻译一个字符串,当然我用的在阻塞队列中加入的任务。代码如下:BlockQueue.hpp#include <iostream>#include <unistd.h>#include <pthread.h>#include <queue>namespace Ns原创 2022-05-22 15:24:06 · 1049 阅读 · 0 评论 -
用红黑树模拟实现map和set
今天我们用红黑树来模拟实现map和set,我们可以参考STL源码,不用自己造轮子。一下是STL源码中的片段,它定义节点的颜色是用const的全局变量,同样需要三个指针left,right,parent.还用了一个继承,我也不知道大佬当时是怎么想的,其实不用继承也是一样可以搞,那么我们模拟实现就不搞继承了。大佬当时可能是出于某种原因吧。typedef bool __rb_tree_color_type;const __rb_tree_color_type __rb_tree_red = fa.原创 2022-05-22 12:26:08 · 416 阅读 · 0 评论 -
红黑树详解
红黑树 红黑树的概念红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过 对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩 倍,因而是接近平衡的。红黑树的性质 1. 每个结点不是红色就是黑色 2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑色结点5. 每个叶子结点...原创 2022-05-16 19:53:37 · 552 阅读 · 0 评论 -
AVL树详解
1. AVL 树 1.1 AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当 于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年 发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之 差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。 一棵AVL树或者是空树,或者是具有以下性质的二原创 2022-05-15 15:47:30 · 827 阅读 · 0 评论 -
692. 前K个高频单词
692. 前K个高频单词class Solution {public: struct ComCoV { bool operator()(map<string,int>::iterator &l,map<string,int>::iterator &r) { if(l->second < r->second) //这里是个坑,堆 < 是大堆原创 2022-05-10 09:33:04 · 136 阅读 · 0 评论 -
set和map的使用
1. 关联式容器在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这 些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容 器?它与序列式容器有什么区别? 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。2. 键值对用来表示具有一一对应关系的一种结构,该结构中一般原创 2022-05-09 22:10:01 · 376 阅读 · 0 评论 -
类与对象(上)
1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的作用域 5.类的实例化 6.类的访问限定符及封装 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入 C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以原创 2022-05-05 12:12:16 · 112 阅读 · 0 评论 -
c++入门
1. C++关键字2. 命名空间3. C++输入&输出4. 缺省参数5. 函数重载6. 引用7. 内联函数8. auto关键字(C++11)9. 基于范围的for循环(C++11)10. 指针1. C++关键字(C++98)11.空值---nullptr(C++11)1.C++总计63个关键字,C语言32个关键字2.命名空间1.在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空原创 2022-05-05 10:45:39 · 393 阅读 · 0 评论 -
二叉树进阶相关题目
1.606. 根据二叉树创建字符串根据题目描述,当右子树为空的情况括号要省略,左子树为空不能省略class Solution {public: void _tree2str(TreeNode*root, string &s) { if(root == nullptr) return; s += to_string(root->val); if(root->left != nullptr || r原创 2022-04-27 13:55:00 · 910 阅读 · 0 评论 -
数据结构进阶-------二叉搜索树(递归和非递归)及其应用
1. map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构 2. 二叉搜索树的特性了解,有助于更好的理解map和set的特性 2. 二叉搜索树2.1 二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树2.2 二叉搜索树操作 1. 二叉搜索树的查找 ..原创 2022-04-24 22:45:28 · 462 阅读 · 0 评论 -
C++进阶-----------多肽
1. 多态的概念1.1 概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状态。 举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优 先买票。 再举个栗子: 最近为了争夺在线支付市场,支付宝年底经常会做诱人的扫红包-支付-给奖励金的活动。那么 大家想想为什么有人扫的红包又大又新鲜8块、10块...,而有人扫的红包都是1毛,5毛....。其实这背后也是 一个多态行为。支付宝首先会分析你的账户数据,比如你是新用原创 2022-04-12 10:52:54 · 800 阅读 · 0 评论 -
c++进阶----继承
1.继承的概念及定义2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6.继承与静态成员7.复杂的菱形继承及菱形虚拟继承8.继承的总结和反思9.笔试面试题1.继承的概念及定义1.1继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。原创 2022-04-01 16:45:34 · 126 阅读 · 0 评论