随笔分类 -  C/C++

摘要:哈夫曼树(Huffman树)原理分析及实现 1 构造原理 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森林中选出两个根结点的权值最小的树合 阅读全文
posted @ 2022-01-05 08:25 一叶飘落尽知秋 阅读(2162) 评论(0) 推荐(2)
摘要:C、C++语言结构体中冒号(位域)用法 位域出现的原因是由于某些信息的存储表示只需要几个bit位就可以表示而不需要一个完整的字节,同时也是为了节省存储空间和方便处理。 typedef struct bit_struct { int bit1:3; int bit2:5; int bit3:7; }d 阅读全文
posted @ 2021-12-15 01:06 一叶飘落尽知秋 阅读(1184) 评论(0) 推荐(0)
摘要:概述 stdbind的头文件是 <functional>;,它是一个函数适配器,接受一个可调用对象(callable object),生成一个新的可调用对象来“适应”原对象的参数列表。 函数原型 stdbind函数有两种函数原型,定义如下: template< class F, class... A 阅读全文
posted @ 2021-12-11 16:13 一叶飘落尽知秋 阅读(2548) 评论(0) 推荐(0)
摘要:std::function介绍 类模版stdfunction是一种通用、多态的函数封装。stdfunction的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。std::function对象是对C++中现有的可调 阅读全文
posted @ 2021-12-11 16:11 一叶飘落尽知秋 阅读(478) 评论(0) 推荐(0)
摘要:c++17的注解 C++17提供了三个注解,分别是[[fallthrough]], [[nodiscard]]和[[maybe_unused]] 1.[[fallthrough]] 用于switch-case中,在某个case分支执行完毕之后,如果没有break语句,则编译器可能会给出一个警告。但是 阅读全文
posted @ 2021-11-03 00:32 一叶飘落尽知秋 阅读(1259) 评论(0) 推荐(1)