Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by enum Color
C语言----自定义类型:联合和枚举-CSDN博客
1.联合体 像结构体一样,联合体也是一个或者多个成员构成的,这些成员可以是不同的类型 联合体的关键字:union 结构体的关键字:struct 枚举的关键字:enum 但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所 以联合体也叫:共⽤体。 //struct S //{ // char c; // int i; // //}; //union Un //{ // char c; // int i; //}; //int main() //{ // printf("%zd\n", sizeof(struct S));//8 // printf("%zd\n", sizeof(union Un));//4 // // return 0; //} /* 但是编译器只为最⼤的成员分配⾜够的内存空间。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。 联合体的特点是所有成员共⽤同⼀块内存空间,这样一个联合变量的大小,至少是最大成员的大小 (因为联合至少的有能力保存最大的那个成员) 那么为什么这里是4呢? */ //union Un...
安装、学习protobuf - __Zed - 博客园
类似于json的一种数据格式,独立于语言,而且是二进制方式,所以比json更快,而且还可以直接存储一些图、树 序列化和反序列化 持久化(存到磁盘硬盘)领域中,数据存到磁盘叫序列化,从磁盘读取出来叫反序列化 网络传输领域中,数据块转字符串叫序列化,对端把字符串解析为数据块叫反序列化 客户端和服务端如何通信 比如一个结构体三个数据依次发送出去,接收端可能一下接收了三个,是无法处理的(不知道边界) 第二种情况,一次性发送出去,添加标记,这样接收端可以一次性解封装,常采用TLV (Tag Length Value) Protobuf到底是什么 类似于刚刚说的TLV结构,是一种组织数据的格式,可以把若干数据组织成一块---> 序列化为字符串 --> 发送 --> 字符串被反序列化 --> 解析数据 只演示Linux下的安装过程 github下载tar.gz包 https://github.com/protocolbuffers/protobuf/releases/tag/v21.12 我这里下载的21.12版本,比较老了,但是基本功能都能用 登录Linux服务器安装...
【C++】map和set封装-CSDN博客
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:手撕哈希表的闭散列和开散列 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:C嘎嘎进阶 > 望小伙伴们点赞👍收藏✨加关注哟💕💕 🌟前言 map和set的知识我们学习了,模拟实现我们已经实现了AVL树和红黑树。熟练知识点为map和set的使用提供了前提,手撕AVL树和红黑树让我了解到map和set的底层如何实现,有了知识点和两树的模拟铺垫,那我们该如何封装map和set呢? ⭐主体 学习map和set封装咱们按照下面的图解: Map和Set底层是用红黑树封装的,而红黑树结构是KV结构。 RBTree是通过传入的Value的值来判断类型,也就是一棵泛型的RBTree,通过不同的实例化,实现出了Map和Set,对于map:传key,对于set:传pair,如图: 简化后的map源码: 简化后的set源码: 我们查看源码后,因此在封装我们map和set时,让我们的红黑树增加一个模板参数T来识别map和set,代码如下:(此处的代码是修改了红黑树) template<class K,...
【C++】手撕红黑树-CSDN博客
> 作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:能直接手撕红黑树。 > 毒鸡汤:行到水穷处,坐看云起时。。 > 望小伙伴们点赞👍收藏✨加关注哟💕💕 🌟前言 相信大家肯定听过在C++大名鼎鼎的两颗树,这两颗树分别是AVL树和红黑树,学过的小伙伴听到都是瑟瑟发抖,像一些大厂中可能会考手撕AVL树或红黑树。学习这两棵树确实难度很大,正所谓难度越大动力就越大,那本篇我们学习这两棵树的一颗树--红黑树。 ⭐主体 学习红黑树咱们按照下面的图解: 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,因而是接近平衡的。 红黑树有以下五点性质: 每个结点不是红色就是黑色。 根结点是黑色的。 如果一个结点是红色的,则它的两个孩子结点是黑色的。 对于每个结点,从该结点到其所有后代叶子结点的简单路径上,均包含相同数目的黑色结点。...
C++惯用法之CRTP(奇异递归模板模式)-CSDN博客
相关系列文章 如何写出高质量的函数?快来学习这些coding技巧 C++惯用法之Pimpl C++之数据转换(全) 目录 1.介绍 3.总结 1.介绍 CRTP的全称是Curiously Recurring Template Pattern,即奇异递归模板模式,简称CRTP。CRTP是一种特殊的模板技术和使用方式,是C++模板编程中的一种惯用法。基本特征表现为:基类是一个模板类;派生类在继承该基类时,将派生类自身作为模板参数传递给基类。下面用网上的实例来说明为什么要用CRTP? 比如我要实现一个数学库,如果使用运行时多态来实现向量类Vector,那么代码结构大致如下: template<typename Type, unsigned Len> struct VectorBase{ virtual void someFunction(){...} ...
决策树(BehaviorTree)的学习心得&&个人见解(持续更新)-CSDN博客
前言 本人在准备RoboMaster比赛时负责编写哨兵机器人的决策代码,在查询资料后可知需要进行关于BehaviorTree(以下简称BT树)的学习,不过BT树的官方教程过于简单并且并无过多言语描述并且网上我暂时没有搜索到系统性BehaviorTree_cpp的学习路线,更多的只是与虚幻引擎当中的行为树蓝图有关的教程。 本着没有教程就创造教程以及作为自己的备忘录的初衷,本人决定开启本文的编写。由于本人对于端口、xml文件编写的了解程度可算作为0,所以当中的表述会有些出入甚至是完全错误,也请各位在发现本人表述上有错误时可以及时指正,本文持续更新。 那么让我们开始关于BT树的学习路程吧! 一、何为BT树 与有限状态机不同,行为树是控制“任务”执行流的分层节点树。(有限状态机(缩写:FSM)又称有限状态自动机(英语:finite-state automaton,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。——来自维基百科) 2.1 TreeNode(树节点) 孩子数量:1...N...
【JAVA】最容易忽视的数据类型--枚举_许思王的博客-CSDN博客
个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 Java枚举是一个特殊的类一般表示一组常量,比如一年的 4个季节,一年的 12 个月份,一个星期的7天,方向有东南西北等。今天就让我们来学习一下在JAVA中这个特殊的类。 枚举 枚举是一种数据类型,用于定义一组具有相同属性的常量集合。在枚举中,每个常量都有一个名称和一个关联的值,可以通过名称或值来引用常量。枚举常用于减少代码中的魔法数字或字符串,使代码更加清晰易懂。 enum Color { RED, GREEN, BLUE; } public class Test { public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } } 在这个枚举中,我们定义了三个常量:Red,Green和Blue。默认情况下,它们的值分别为0、1和2。我们将枚举中的Red常量分配给myColor变量,并检查myColor是否等于枚举中的Green常量。 Color myColor = Color.Red; if...
【数据结构】&&【C++】封装红黑树模拟实现map和set容器_小陶来咯的博客-CSDN博客
一.红黑树的完成 在上一篇红黑树的模拟实现中,已经将红黑树实现完毕,这里不再分析。 #pragma once #include <iostream> using namespace std; enum Color { RED, BLACK }; template <class K, class V> struct RBtreeNode { RBtreeNode<K, V>* _left; RBtreeNode<K, V>* _right; RBtreeNode<K, V>* _parent; Color _col; pair<K, V> _kv; RBtreeNode(const pair<K,V> kv) :_left(nullptr) ,_right(nullptr) ,_parent(nullptr) ,_col(RED) ,_kv(kv) {} }; template <class K, class V> class RBTRree { typedef RBtreeNode<K, V> Node; public: bool CheckColour(Node* root,...
【C++】使用红黑树进行封装map和set_平凡的小苏的博客-CSDN博客
🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸C++专栏:C++内功修炼基地 > 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我真重要,各位路 过的友友麻烦多多点赞关注。 欢迎你们的私信提问,感谢你们的转发! 关注我,关注我,关注我,你们将会看到更多的优质内容!! 本文难点:使用红黑树封装set和map,必须保证两种数据结构复用同一棵红黑树;且满足set和map的性质,set的value不可被改变,而map的value可以被改变。 template<class T> struct RedBlackTreeNode { T _data; RedBlackTreeNode<T>* _left; RedBlackTreeNode<T>* _right; RedBlackTreeNode<T>* _parent; Color _col; RedBlackTreeNode(const T& data) : _data(data) , _left(nullptr) ,...
map && set_我的代码爱吃辣的博客-CSDN博客
✅<1>主页:我的代码爱吃辣 📃<2>知识讲解:C++ STL map&&set ☂️<3>开发环境:Visual Studio 2022 💬<4>前言:map和set是C++98就已经支持的两个搜索效率极高的容器,其底层就是使用和红黑树作为存储容器,我们已经实现了红黑树,接下来我们熟悉一下map和set的使用,并了解其封装结构,我们自己使用红黑树封装一个。 目录 1.set使用 2.multimap 1.关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、dequeforward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别? 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的 键值对,在数据检索时比序列式容器效率更高。 2.键值对 用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代...
Java枚举中定义属性_java枚举自定义属性_-代号9527的博客-CSDN博客
刚接触枚举时的例子太简单,就一个Season枚举类,里面四个常量值,后来开发中看到枚举中定义属性就很看不惯。这里梳理下Java枚举中定义属性,以及枚举在开发中的实际应用举例。 Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份 Java枚举类使用enum定义,各个常量之间用逗号分隔 enum Color { RED, GREEN, BLUE; } 枚举类中引用每一个常量值,用类名.常量 public class Test { public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } } 初学时的经典例子,和switch连用 public class MyClass { public static void main(String[] args) { Color myVar = Color.BLUE; switch(myVar) { case RED: System.out.println("红色"); break;...
C++【实现红黑树(核心插入)】_7昂7.的博客-CSDN博客
概念: 红黑树,也是一种二叉搜索树,它是在每个结点上增加一个存储位表示结点的颜色,可以是红或黑,然后通过对任何一条从根到叶子的路径上各个结点着色方式的限制,保证了没有一条路径会能超过其他路径的俩倍,因而是近似平衡的。map和set的底层数据结构就是用红黑树来封装的。 性质: 1.根节点是黑色的 2.不能出现连续的红色节点 3. 每条路径上有相同数量的黑色节点 4. 每个叶子(空节点)结点都是黑色 5.
C++ -- 红黑树封装set和map
1.1 概念 1.2 性质 每个节点要么是红色要么是黑色 整颗树的根节点是黑色 如果一个节点是红色,那么它的左右孩子节点是黑色 对每个节点,从该节点到其所有后代叶子节点的路径上均包含相同数目的黑色节点 每个叶子节点的左右空节点都是黑色 1.3 实例 1.4 分析 最短路径:路径上的节点全是黑色 最长路径:路径上的节点有黑色和红色 enum Color { RED, BLACK }; template <class KEY, class VALUE> struct red_blackTreeNode { red_blackTreeNode<KEY, VALUE>* _left; //左节点指向 red_blackTreeNode<KEY, VALUE>* _right; //右节点指向 red_blackTreeNode<KEY, VALUE>* _parent; //父节点指向 pair<KEY, VALUE> _couple; //存储key/value Color _color; //颜色标签 red_blackTreeNode(const pair<KEY, VALUE>&...
【数据结构】手撕红黑树_蒋灵瑜的笔记本的博客-CSDN博客
目录 一、红黑树简介 1、红黑树的简介 2、红黑树的性质 二、红黑树的插入(看叔叔的颜色就行) 1、为什么新插入的节点必须给红色? 2、插入红色节点后,判定红黑树性质是否被破坏 2.1情况一:uncle存在且为红 2.2情况二:uncle不存在/存在且为黑(直线) 2.3情况三:uncle不存在/存在且为黑(折线) 2.4总结 3、红黑树插入代码 1、红黑树的简介 红黑树和AVL树一样,因其逻辑复杂,面试时现场要求手撕就是纯纯刁难面试者。但某大厂面试官曾要求某些求职者现场手撕红黑树(我赌5毛,让面试官撕,他也撕不出来,而且你家员工上班手搓红黑树啊?),随后求职遭遇被发到网上吐槽,这便有了“手撕红黑树”的梗,也让红黑树成为了知名度最高的数据结构。(话虽如此,对于红黑树的性质、插入思想等概念还是需要掌握的) 2、红黑树的性质 红黑树本质也是一种二叉搜索树。底层结构需要使用二叉搜索树的地方,基本上都会使用红黑树来实现,而AVL树也因此坐上了冷板凳。...
C语言进阶--自定义类型:枚举、联合__麦麦_的博客-CSDN博客
目录 1.枚举 1.枚举 1.1枚举的定义 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }; enum Sex//性别 { MALE, FEMALE, SECREAT }; enum Color//颜色 { Red, Green, Blue }; #include <stdio.h> enum Color//颜色 { Red=5, Green=2, Blue=0 }; enum Sex//性别 { MALE, FEMALE, SECREAT }; int main() { printf("MALE=%d\n", MALE); printf("FEMALE=%d\n", FEMALE); printf("SECREAT=%d\n", SECREAT); printf("小伙伴们%d", Red); printf("%d", Green); printf("%d", Blue); return 0; } enum Color//颜色 { Red=5, //初始化为5 Green=2, //初始化为2 Blue=0...
手撕红黑树--C++高阶数据结构详解_c++ 高级数据结构_乔乔家的龙龙的博客-CSDN博客
传统艺能😎 小编是双非本科大一菜鸟不赘述,欢迎各位指点江山(期待~)(QQ:1319365055) 此前博客点我!点我!请搜索博主 【知晓天空之蓝】 🎉🎉非科班转码社区诚邀您入驻🎉🎉 小伙伴们,打码路上一路向北,彼岸之前皆是疾苦 一个人的单打独斗不如一群人的砥砺前行 这是和梦想合伙人组建的社区,诚邀各位有志之士的加入!! 社区用户好文均加精(“标兵”文章字数2000+加精,“达人”文章字数1500+加精) 直达: 社区链接点我 概念🤔 红黑树也是一种二叉搜索树,但是每个节点都存储了一个颜色,该颜色可以为黑可以为红,因此也叫红黑树。 红黑树和 AVL 树的区别就是红黑树属于近似平衡,他并不是完全平衡,红黑树不会像 AVL 树一样做到严密的平衡(高度差控制在 1 ),他是依靠每条路径上红黑节点的排布与限制,确保最长路径长度不超过最短路径长度的 2 倍.
C++ RBTree红黑树的性质与实现
更新时间:2023年03月08日 11:01:29 作者:平凡的人1 红黑树是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black;通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是平衡的 一、红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是平衡的 。(既最长路径长度不超过最短路径长度的 2 倍) ps:树的路径是从根节点走到空节点(此处为NIL 节点)才算一条路径 二、红黑树的性质 每个结点不是红色就是黑色 根结点是黑色的 如果一个结点是红色的,则它的两个孩子结点是黑色的(没有连续的红色结点) 对于每个结点,从该节点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点 每个叶子结点都是黑色的(此处的叶子结点指的是空节点,NIL节点),如果是空树,空节点也是黑色,符合第一个性质 理解最长路径长度不超过最短路径长度的 2...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with enum
Contact enum, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack