自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cuber-lotus的博客

合作请私信

  • 博客(131)
  • 收藏
  • 关注

原创 算法笔记(个人用)(不定期更新)

文章目录前言说明Note文档编辑相关语言特性相关 (C/C++)输出数组最后一个元素后面无空格二分查找函数rand() 范围算法相关排序区间求和题单基础数学素数素数判断素数筛朴素筛选 (埃式筛)朴素筛选优化线性筛 (欧拉筛)闰年判断蔡勒(Zeller)公式GCD10转R进制卡特兰数完美数分解因数欧几里得-欧拉定理数根[1~n] 中完全平方数的个数计算Π pia二分查找顺序序列找唯一值逼近类二分容斥原理位运算整形存储大小intlong long`__builtin_函数`取模自动取模工具类除法取模判断奇偶统计

2021-03-23 22:35:02 2443 4

原创 (Qt) 文件读写基础

本文资料和测试版本为Qt 5.15。

2024-07-22 22:42:12 31

原创 (C++) 文件读写基础

📄分点讲解C++用类封装了流式操作,使用体验是更加丰富,更加多。🗃️写法1:法2:法3:🗃️读法1:法2:法3:法4:法5:

2024-07-22 22:40:57 317

原创 (POSIX) 文件读写基础

📄分点讲解说白了,这就是最标准的 POSIX 的对文件描述符fd的操作方式。淡然posix下的文件操作和读写不知这简单的几种,但掌握最基本的以下几种是必备的。

2024-07-22 22:32:45 58

原创 (C语言) 文件读写基础

文件输入/输出 - cppreference.com。

2024-07-22 22:31:50 201

原创 (Effective C) 2.3 作用域

作用域应用于标识符的某个特定声明。标识符包含对象函数标签宏等等。作用域是一块连续的区域,在域的任何位置,可以访问当前位置的前面区域的标识符。

2024-06-24 00:41:13 309

原创 (C++语言的设计和演化) C++的设计理念

译者《C++语言的设计与演化》目录 (pku.edu.cn)《C++语言的设计与演化》有关信息 (pku.edu.cn)豆瓣C++语言的设计和演化 (豆瓣) (douban.com)出版社(异步图书)C++语言的设计和演化-异步社区实验平台 (epubit.com)本文主要摘取书本第4章 C++语言设计规则和第6章 标准化和第8章 库。是一些关于之父对于在 C++ 中设计和思考中得出的一些明文条例。

2024-06-21 01:20:43 837

原创 (C++) 函数重载机制

在C++中函数重载是一个非常强大由复杂的问题。在C++中本身就有许多函数机制,加上该语言也在不断的迭代,规则是越来越多。

2024-06-07 00:59:07 806

原创 (软工) 功能性和非功能性需求是什么?

软件开发的根本目的就是满足客户的需求。这个客户可以是一个人,一个企业,甚至是你公司内部的另一个部门。但绝大多数客户往往无法准确表达自己希望的需求,这时就需要软件架构师去挖掘功能。一般来说软件功能可以分为功能性需求和非功能性需求。

2024-06-04 00:03:43 743

原创 信息标记形式 (XML, JSON, YAML)

ref:Python网络爬虫与信息提取_北京理工大学_中国大学MOOC(慕课)单元5信息标记形式是当今网络世界中非常重要的一部分。目前主要被大众认可的有三类。标记后的信息可形成信息组织结构,增加了信息维度标记的结构与信息一样具有重要价值标记后的信息可用于通信、存储或展示标记后的信息更利于程序理解和运用。

2024-05-28 22:52:04 984

原创 (C11) 泛型表达式

只能判断一个表达式的类型,因此如果是需要用到多参的话,可以嵌套的使用。关注我,学习更多C/C++,算法,计算机知识。不是必须写道最后一个,顺序这方面没有限制。可以根据类型指定调用的函数,注意参数个数。与控制表达式类型兼容,则程序无法编译。关联,则解释为其后的表达式。,若其类型与各关联之一的。,则解释为冒号后的表达式。限定符对类型识别不受影响。对指针类型的判断仍然使用。时,并且直接调用的情况。只在类型域中进行转换。可以判断自定义类型。

2024-05-28 20:49:27 1095

原创 (排序) 快速排序经典应用之快速选择

1738. 找出第 K 大的异或坐标值本题是一个二维前缀和的模板题但有一个附属需求就是要获得第k大的值,这就是经典的快速选择应用。或不是有效范围。(C++11 前)*first的类型不可交换(Swappable)。(C++11 起)RandomIt不可交换值 (ValueSwappable)。*first的类型不可移动构造(MoveConstructible)。*first的类型不可移动赋值(MoveAssignable)。

2024-05-27 00:29:25 499

原创 (Qt) 默认QtWidget应用包含什么?

本文将带大家,查看一个默认的Qt Widget程序可能会涉及哪些方面的内容。本文默认使用IDE为Qt Creator和qmake编译套件。当然由于个人能力和水平的局限性,并不可能带领大家看到所有的全貌。

2024-05-23 20:08:41 974

原创 conan2 基础入门(06)-conanfile.py入门

真正需要指定生成动态库需要在conan install执行中指定。requirements() 方法用于指定包的依赖项。首先这是一个脚本性质的文件,不是一个完整运行的程序。选项设置,属于辅助变量。规定当前的脚本需要的选项。在python脚本中的选项仅是做脚本编码时的辅助。也可以这么操作,但其本身支持在配置中指定动态库。执行之后运行,或者当一个包在缓存中构建之后,关注我,学习更多C/C++,算法,计算机知识。这里对应好使用的profile文件的内容。当然使用其他方式安装也是有效果的。注意,如果想跟好的学习。

2024-05-12 00:14:14 1002

原创 conan2 基础入门(05)-(静态库&动态库)(Debug&Release)

本文均在windows下测试,使用msvc编译器。显示指定zlib使用静态库。关注我,学习更多C/C++,算法,计算机知识。中的所有库都是动态库了。

2024-05-12 00:10:45 350

原创 conan2 基础入门(04)-指定编译器(gcc为例)

可以用命令生成,也可以直接复制一份已存在的profile,或者直接自己新建一个空白文件都行。若不指定,经测试host为mygcc配置,build为default状态。如果你和上文中的代码和配置文件编写一致,请无脑直接操作以下命令。并修改成如下的配置,注意,请根据自己平台的gcc进行配置。一般这个在交叉编译时非常重要。在本示例中可以不指定。关注我,学习更多C/C++,算法,计算机知识。具体参见配置目录下的。在install命令下添加。注意在生成时区别于使用。注意:不同编译器的具体。这里的第二条分别制定了。

2024-05-11 23:59:22 654

原创 conan2 基础入门(03)-使用(msvc为例)

下面讲一些可能出现的问题,因为笔者是比较顺利的完成的,这里将的都是一些基于经验的猜测。格式的配置文件(但并非完全的ini,conan有自己的特殊处理)。如果你和上文中的代码和配置文件编写一致,请无脑直接操作以下命令。(注意,在默认生成的profile中是下载的静态库)关于上文中,文件和代码配置的相关信息可以参照官网的提示编写。我们可以在官网查看是否有该包,和包的版本。如果你只是单纯的下载一个库,到这里其实就可以结束了。我们查看以下该文件,可以看到下面的重要信息。库做了很多对应的操作,而其中最重要的是名为。

2024-05-11 23:57:57 1342

原创 conan2 基础入门(02)-安装

官方提供三种安装conan的方式。使用python安装安装包安装自行操作其中,python不是必须的,没有python不会影响后两种的安装方式和具体的conan使用。但用python安装对后期学习和使用有一定的帮助和好处。但作为初学阶段,只需要做到三选一即可。

2024-05-11 21:04:16 1014

原创 conan2 基础入门(01)-介绍

一句话来说:conan是C/C++的一个包管理工具。目前conan2是conan的2号主版本。

2024-05-11 21:00:09 996

原创 GCC-warnings含义

在写完脚本自己测试时才发现,这个库真垃圾,有每日使用次数(应该是联网的),异常率高,机翻中的机翻。本文翻译使用的是,WPS的自带翻译功能。笔者简单的略了一遍,稍微改了点一眼就能看出来的机翻问题。但肯定还有很多问题,请自行阅读原文理解和使用。关注我,学习更多C/C++,算法,计算机知识。一开始找了个python库写了个脚本翻译。

2024-04-29 22:31:03 827

原创 (C++) share_ptr 之循环引用

unique_ptrshared_ptrweak_ptr都是内存管理中的非常重要的一部分动态内存管理 - cppreference.com。其中shared_ptr在实际应用中具有非常广泛的应用。而由于其较unique_ptr的功能多,有引用计数的概念。导致存在一个名为循环引用的问题。这是一个非常经典的坑。但解决方案也不是很复杂。下面来一起看看吧。

2024-04-25 21:38:38 1108

原创 (C++) 内类生成智能指针shared_from_this介绍

unique_ptrshared_ptrweak_ptr都是内存管理中的非常重要的一部分动态内存管理 - cppreference.com。其中shared_ptr在实际应用中具有非常广泛的应用。而拷贝操作也是非常常见和重要的操作。在类外可以直接使用默认的拷贝构造和拷贝赋值,而类内呢?显然这两种默认的拷贝操作均不适用。本文就是讲解使用来处理该问题。

2024-04-24 20:24:41 1023

原创 (C++) this_thread 函数介绍

在C++11起,标准规定了标注的并发库。头文件为并发支持库 (C++11 起) - cppreference.com其包含线程、原子操作、互斥、条件变量和 future 的内建支持。而其中有一个namespace为,里面有四个重要的全局函数,其实现都与当前系统环境和编译器强绑定。std::this_thread 符号索引 - cppreference.comget_id()yield()返回当前线程的id。这个id是一个的内部类型。其实现依附于所在平台。

2024-04-24 20:20:32 1950

原创 (Git) gitignore基础使用

在使用git管理的项目中,可以通过.gitignore文件管理一些需要忽略管理的文件。.gitignore的文件。

2024-04-07 20:43:24 490

原创 (C++17) std算法之执行策略 execution

算法库-执行策略 - cppreference.com利用多核cpu加速算法在目前看来已经不是什么新鲜事了。在C++17中,推出了算法函数的执行策略,可以选择执行策略来优化算法的执行效果。(注意不是所有算法都支持)目前到C++20,已经支持了四种执行策略。当然本文也仅仅是做简单的展示和描述,因此内部细节十分复杂不是几篇端文章就能看懂的。标准策略执行策略类型(类)全局执行策略对象(常量)C++17串行执行C++17并行执行C++17并行无序执行C++20无序执行功能特性测试值标准。

2024-03-29 23:38:54 1013

原创 (C++) 属性说明符-标准属性

本文着重讲解属性说明符的标准属性(C++) 属性说明符-语法属性说明符是一种与具体编译器强绑定的内容。有的属性可以作为编译器的提示,有的则是直接作为设置。在C++11之前,不同编译器拥有不同的语法,不同的说明符。在编写跨平台程序时非常麻烦,移植性一直不是很好。到了C++11标准终于规定了属性说明符的标准。但是所支持的说明符随着标准的提出还不是很多。但该语法仍然允许使用编译器自身的说明符,为以后的扩展做了一定的预留。

2024-03-29 00:38:00 1079

原创 (C++) 属性说明符-语法

本文着重讲解属性说明符的语法属性说明符是一种与具体编译器强绑定的内容。有的属性可以作为编译器的提示,有的则是直接作为设置。在C++11之前,不同编译器拥有不同的语法,不同的说明符。在编写跨平台程序时非常麻烦,移植性一直不是很好。到了C++11标准终于规定了属性说明符的标准。但是所支持的说明符随着标准的提出还不是很多。但该语法仍然允许使用编译器自身的说明符,为以后的扩展做了一定的预留。

2024-03-29 00:36:51 834

原创 (C++20) jthread中stop_token的基础使用

在多线程中单单使用循环判断一个标志是效率比较低的。如果能将一个线程进行挂起那CPU的效果会提升很多。最普通的方式就是循环判断。这对于常见的线程封装来说很常见。在C++20中推出了jthread。关注我,学习更多C/C++,算法,计算机知识。该sstoken与线程对象绑定。会自动调用注册的callback。回调函数的声明周期,跟随回调对象。对象注册一个监控停止的回调。能够接受一个第一个参数为。

2024-03-20 18:25:16 588

原创 (C语言) print输出函数系列介绍

Linux 和 libc 给您拜 年 啦在这辞旧迎新的美好时刻:🧨 printf 携手 fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprintf, vsprintf, vsnprintf, fputc, fputs, putc, putchar, puts 祝您新的一年能大展宏图。

2024-03-20 18:23:56 1490

原创 (C++) 如何设计一个安全的pop函数

下面为了方便,采用继承而不是组合的方式来处理。请注意在调用模板基类内容时候的一些注意点,本文不会讲解这块基础。有一些激进派认为,空栈的pop直接抛出一个确定的异常,但本文没那么粗暴。且默认采用移动语义,缺点是对于一些确定删除移动语义的对象会报错,当然这类对象比较少。

2024-03-07 21:21:35 1385

原创 (C语言) time库-日期和时间工具

日期和时间工具 - cppreference.com是在C语言中的日期与时间工具。其中主要有三大模块,常量,类型和函数。在C++中推荐写成,基本都是继承.h中的东西。函数主要分为两类,时间操作函数和格式转换函数。本文主要为C语言中的标准操作,其中在C11和C23又添加和废弃了许多内容,但这块不会本文着重讲解。UTC 协调世界时纪元(地球纪元)夏令时

2024-03-01 21:14:12 1468

原创 (libusb) usb口自动刷新

因为设备的实际请款,可能关闭后就再获取不到了,只要不随便乱插,设备标号和句柄是不会变的,因此直接保留好。因此可以设置一个比较大的循环,无脑获取多次,直到获取成功,但若多次获取失败,则直接视为失败了。界面功能比较简单,基本就是widget中的代码,设置好vendor和倒计时后点击开始即可。:有的vendor是一样的编号,请根据实际的情景和需求改变具体的查找规则。在实际作用时,可能因为物理设备实际问题,导致设备指针和句柄的获取失败。本demo主要就是libusb的封装,然后是对于封装的简单调用。

2024-02-29 18:02:48 1195

原创 【题单】(树) 树的基础遍历搜索

lc楼主主页-天赐细莲首先明确树是一种特殊的图。常用的图的遍历方式为bfs或dfs。这同样也是树形问题的常用方式。和图一样树衍生出来的算法丰富多彩。本文挑选了一些学习树的入门题目,包含常用遍历,序列化与反序列化等经典模型。这些题目无论是在校学习考研,或是求职等都是基础中的基础,要求牢牢掌握。熟练者都能做到一遍AC。

2024-02-29 11:34:05 440

原创 我的创作纪念日

​ 当然当时和力扣leetcode签订创作者协议的时候,我将csdn的博客作为自己的一份能力证明表了出来,这应该算是我的一份正向推动吧。但是这样的开销实在太大。文章主要是作为我个人的记录,我也是希望能与他人交流的,但几乎没看到谁看了我的文章专门跑过来与我交流。在平时学习的时候,会给自己做一些简单的记录,是真的简单的在比如手机代办事项上做一条标记。算法文章和技术文章的,形式我也会慢慢形成自己的风格,当然目前已经有了一定的自己的风格了。以后会考虑出视频的方式,这就脱离了文章的范畴了,这里不展开说了。

2024-01-14 15:03:14 1048

原创 (Qt) 预编译头文件precompile_header

预编译头文件是C++编译系统中的一种机制,用于提高编译速度。就是将我们需要的内容放在预编译头文件中,并单独编译成一个文件。但其他文件在编译时需要里面的内容时,可以直接去使用这个编译好的文件,节省编译时间。我们常见的stdafx.h或pch.h就是在一些平台中常见的预编译头文件常用命名。大多数编译工具的机制都是类似的,本文主要说一下qmake中的使用方式。

2023-12-28 20:24:54 1080

原创 软件设计之SOLID原则

软件设计之SOLID原则(SRP) 单一职责原则 Single Responsibility Principle(OCP) 开闭原则 Open Closed Principle(LSP) 里氏替换原则 Liskov Substitution Principle(ISP) 接口隔离原则 Interface Segregation Principle(DIP) 依赖倒置原则 Dependency Inversion Principle

2023-12-27 00:03:42 1128

原创 (QMake) 库的操作

这是qt Creator 默认形式,应该也可行,但没怎么使用过这种形式。链接方式其实写法比较自由,上文中是直接将路径和文件合并的书写。但关键是需要使用Qt库中的内容。采用一个顶级工程qmake,管理两个子工程。比如这里用了最具代表的QWidget。

2023-12-27 00:01:32 442

原创 (CMake) 库的操作

在cmake中,动静态库的制作主要配置同一个位置的参数即可。辅助验证cmake的配置。

2023-12-26 00:10:22 502

原创 (GCC) 库的操作

经过测试,windows下为libxxx.a也可以。准备两个文件,以最简单的形式进行展示。为了方便直接在头文件中声明函数。生成一个动态库,有可执行权限。链接操作静动态库一致。不指定-o的话默认是。链接操作静动态库一致。

2023-12-26 00:05:58 438

原创 (C++20) span简单实现

而入错传递的是一个视图,这个视图能够指向原对象,那么这个直接传递的开销也是我们可以接受的。关于std::vector和std::array相对比较方便,也是大家平时直接应用的方式。到了C++中泛化出了迭代器的标准。关于这里的第二个传入首位位置的版本,需要允许两者直接的相互减。可见具有动态长度的std::vector在这里是最方便的。在不传递引用的情况下,传递对象在很多时候会巨大的性能损耗。这里的主要难点就是对构造函数的实现,如何获得首地址和长度。是C语言中传数组的最常见形式。高,不然无法获得数组的引用。

2023-12-01 22:59:06 590

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除