每日一个C++基础系列
文章平均质量分 65
本就是菜鸟何必心太浮
我是菜狗
展开
-
C++之QT文本处理QDir、QFileDialog、QStringList、QFile
C++之QT文本处理QDir、QFileDialog、QStringList、QFile原创 2024-05-08 19:26:11 · 364 阅读 · 1 评论 -
C++之泛型编程---有限双端队列结构容器
通过设计有限大小的双端队列容器(LDQC)可以很好地解决上述问题,根据进出队列的模式不同,可以分为先进先出(FIFO)和先进后出(FILO)两种数据传输过程,因此该容器主要包括6大功能函数:数据入队头(enqueuefront)、数据入队尾(enqueuelast)、取队头数据(dequeuefront)、取队尾数据(dequeuelast)、判断容器是否为空(isempty)、容器清空(clear)。其数据流向示意图如图1。为了解决工业领域代码容器的通用化,可以考虑C++里的泛型编程概念。原创 2024-05-08 18:54:31 · 406 阅读 · 1 评论 -
C++之程序生成
这些标准制定了C语言和C++的基本规范,各个编译器需要支持这些标准以确保代码的正确执行和相互兼容。在实际编程过程中,需要根据所使用编译器的支持情况选择合适的标准。二、C++程序从cpp源代码到程序执行的过程。原创 2023-12-17 19:52:16 · 476 阅读 · 0 评论 -
C++之unordered_multimap与unordered_map的区别
在C++的unordered_map中,实际插入时是插入的键值对,而不是单独的值。unordered_map是一种关联容器,它存储键值对(key-value pairs)的映射关系。当你插入一个键值对时,unordered_map会根据键的哈希值将该键值对存储在相应的桶(bucket)中。因此,当你插入一个键值对时,实际上是同时插入了键和值两个元素。因此最终寻找遍历时是进行键值对同时比较的。原创 2023-12-17 14:16:39 · 462 阅读 · 0 评论 -
C++之printf与sprintf用法
是一个 C 语言库函数,用于将格式化的数据写入字符串中。其与printf的根本区别主要是printf是将信息显示到界面cmd中,而。是 C 语言库函数,因此在使用时需要小心处理数据类型和格式化字符串的匹配问题,以避免出现类型不匹配和格式化错误等问题。可以导致缓冲区溢出,因此在使用时需要确保目标缓冲区足够大,能够容纳写入的字符串。是将printf要输出的信息写入到字符串里。其与printf公用格式参数表。原创 2023-12-10 18:13:22 · 907 阅读 · 0 评论 -
C++之链表list
函数名描述在链表末尾添加元素在链表头部添加元素pop_back()删除链表末尾的元素删除链表头部的元素erase()删除链表中的指定元素insert()在链表中指定位置插入元素splice()将两个链表连接起来sort()对链表进行排序reverse()反转链表的顺序find()在链表中查找元素front()获取链表的第一个元素back()获取链表的最后一个元素empty()检查链表是否为空size()获取链表的长度。原创 2023-12-06 23:50:45 · 758 阅读 · 0 评论 -
C++代码自动化
如果我想提取C++中的所有类以及成员函数,那么我该怎么做呢?一种常用的方法是使用静态代码分析工具,如Clang LibTooling、GCC-XML 或 Ctags。这些工具可以帮助你分析 C++ 代码,并提取出类和成员函数的信息。public:在上面的示例中,我们使用Clang LibTooling和ASTMatchers来匹配C++源代码中的类和成员函数。我们创建了一个类,它继承自,并实现了run()函数来处理匹配结果。在main()函数中,我们创建了一个。原创 2023-12-06 23:48:08 · 2081 阅读 · 1 评论 -
C++之枚举与宏定义
在C++中,宏定义可以用来在编译时进行文本替换和处理。宏定义:宏定义是C++预处理器的一个功能,它可以在编译时进行文本替换。宏定义的基本语法可以分宏定义变量和宏定义函数。//宏定义变量#define 宏名称 替换文本//宏定义函数注意:对于定义的函数可能会存在混合类型运算的情况,比如a是int类型而b是float类型会引发错误。当你使用这个宏时,比如ADD(5, 3),预处理器会将其替换为(5 + 3),即8。但是,如果你给这个宏传递不同类型的参数,比如,这会引起一个编译错误。原创 2023-12-05 21:26:46 · 480 阅读 · 0 评论 -
C++之vector插入初始化性能优化
C++整理集合。原创 2023-12-05 21:13:03 · 646 阅读 · 0 评论 -
C++之字符串与字符string、char
【代码】C++之字符串与字符string、char。原创 2023-12-02 21:16:15 · 632 阅读 · 1 评论 -
C++之STL算法基础--遍历与算法
STL是C++标准库中的一个模板库,全称为Standard Template Library,它提供了一系列的通用数据结构和算法。stl包括六大组件,其中3个主要组件:算法(algorithm)、容器(container)、迭代器(iterator)和3个辅助组件:配置器(allocators)、适配器(adapters)、函数对象(function object)。stl中几乎所有的代码都采用了(T)模板类和(T)模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机制。原创 2023-12-02 20:56:17 · 946 阅读 · 1 评论 -
C++之hash映射与集合
函数名描述insert()插入一个或多个键值对erase()删除一个或多个键值对find()查找指定键的值,如果找不到则返回尾迭代器count()返回指定键值的数量empty()检查容器是否为空size()返回容器中键值对的数量clear()删除容器中的所有键值对swap()与另一个容器交换内容begin()返回指向第一个键值对的迭代器end()返回指向尾部的迭代器cbegin()返回指向第一个键值对的常量迭代器cend()返回指向尾部的常量迭代器返回用于哈希的函数对象key_eq()原创 2023-12-01 23:11:14 · 909 阅读 · 1 评论 -
C++之常用的三类数据结构--栈、队列、数组
函数名功能描述push()向栈顶添加一个元素pop()删除栈顶元素top()返回栈顶元素的值empty()判断栈是否为空,如果为空则返回true,否则返回falsesize()返回栈中元素的个数clear()清空栈中的所有元素。函数名功能描述push()在队列尾部添加一个元素pop()删除队列的头部元素front()返回队列的头部元素back()返回队列的尾部元素empty()判断队列是否为空(元素个数为0)size()返回队列中元素的个数clear()清空栈中的所有元素。函数名功能描述。原创 2023-11-30 21:40:19 · 2108 阅读 · 1 评论 -
编程需要考虑的问题
总的来说,编写代码是一个大工程,需要从功能实现、代码速度优化、数据安全、代码复用等角度不断的优化升级。如果你只想写一个函数实现一个小功能,那也需要考虑怎么让机器实现。原创 2023-11-30 10:25:17 · 1095 阅读 · 1 评论 -
C++之位运算整理
Brian Kernighan 算法:对于任意整数 x,令 x=x & (x−1),该运算将 x 的二进制表示的最后一个 1变成 0。因此,对 x 重复该操作,直到 x 变成 0,则操作次数即为 x 的「一比特数」。每一次的x-1都会使32进制表示的bit位中最后一个1翻转为0;1.判断一个int类型存在多少个bit=1的位数,可以采用常规的暴力方式,也可以采用Brian Kernighan算法;2.最高有效位,当上面的Brian Kernighan 算法存在如下的特殊形式时表明该比特为最高有效位;原创 2023-11-28 20:27:09 · 295 阅读 · 0 评论 -
C++之泛型编程
是一个类型参数,它表示一个占位符,可以代表任何类型。当使用模板函数或类时,可以将具体的类型替换为。注意:template <typename T> 的含义是C++中的一个模板声明,其中。分别定义泛型编程里的函数模板、类模板以及常用的STL库迭代器。是一个关键字,用于指示编译器将后面的类型名称视为类型参数。,以实现代码的通用性和复用性。原创 2023-11-28 20:26:59 · 435 阅读 · 0 评论 -
C++基础之stastic
【代码】C++基础之stastic。原创 2023-11-27 22:28:28 · 436 阅读 · 0 评论 -
C++基础之const
第二句中const int* ptr由于const左边已经没了,因此向右看,因此他修饰的int值类型,意味着不可以修改指针指向的值;第一句中int* const ptr修饰左边的指针,因此也就意味着ptr的指针指向地址不能变动;注意:对于修饰问题可以参考先左再右的规则,即首先判断关键词的左边,比如对于这两句代码;关键词有几种不同的用法,都用于增强代码的安全性和可读性。原创 2023-11-27 22:26:33 · 608 阅读 · 0 评论