- 博客(151)
- 收藏
- 关注
原创 函数指针在C++遍历函数中的写法和应用(直接在函数中定义函数指针)。
现在重点来了,现在的每一种数据结构,都支持 for( auto& item: container),你可以把traverseMenu写成模板函数。例子,在Qt中,有一个右键菜单,我想把菜单中的节点改为章节。例子,在Qt中,有一个右键菜单,我想把菜单中的节点改为章节。
2025-03-30 15:18:27
246
原创 替代Qt中信号与槽时,不要忘记调用unsubscribe
也是正常的,为什么,因为do_resize没有用到对象 t 的作何成员或成员函数。例子3,当对象销毁时呢,正常吗?运行控制台不会输出任何东西。
2025-03-26 22:59:17
304
原创 接上一主题,直接对二进制进行加密,密钥不写入电脑。
钥的值,这有几十种可能,很容易破解,这就是电脑密码长度不能太少的原因。只有一个函数,还可以设计再好一点,加一个随机字符串中,,当密钥的长度等于1时,每个_byte都加上密。在随机字符中获得值,但思想都差不多。每一个Byte值都跟密钥相关联。
2025-03-23 18:06:45
140
原创 有关C++加密和自制简单加密程序。
c#版本写这篇文章缘由是很久以前,我用C#写了一个类似记事本的程序,如图:想写一个私密的东西,比如日记等等。后来C#换成了C++CLI,C++MFC,现在是QT,那时候我用了两种加密程序,一种是DES,一种是自己写的。现在就有了三个版本的加密程序,一个是C#,一个是C++ CLI, 一个是 C++。
2025-03-23 01:51:41
456
原创 替代Qt中信号与槽的完整例子。
注意,要用static本来这篇文章不想在,但在Qt设计中刚好遇到这个例子,下面说一下事情的由来:我在用QTestEdit中,想做一个格式刷,World一样的格式刷。
2025-03-19 22:32:57
501
原创 关于如何设计等价于Qt的信号与槽机制,新版的_FileManager
【代码】关于如何设计等价于Qt的信号与槽机制,新版的_FileManager。
2025-03-16 21:14:50
211
原创 接上一篇,C++中,如何设计等价于Qt的信号与槽机制。
看下面例子:所有连接类FileManage中的信号,在changeFileName函数中被调用。输出:输出:是不是一样,是不是很酷。:)
2025-03-16 15:31:56
470
原创 如何在C++中随心所欲地设计自己的事件?
以前用过VB、Delphi,C++Builder的老程序员都知道,事件驱动在可视化程序设计中有非常重要的位置,用起来非常方便,现在的Qt框架也是,不管是信号还是事件,或者Java中的接口,目的是让未来开发人员一起设计,一起扩展。为什么用pf_开头,看下图就知道了,如果一个不太熟悉Qt框架的人,要找信号和事件,每次都要去看源代码,几百个函数,烦死了。在my_window颜色发生改变时,要发出一个事件,表明color发生了改变,这里有三种方式。注意:上次说过第二种 Lambda 无法传递参数,使用起来不方便。
2025-03-14 21:58:47
306
原创 C++中,创建纳秒级的_DateTime
在创建类之前,我们首先要了解什么是时间,我说的是C++定义的时间 ,我们就把它看作路程即可,假设由A到B的路程是1公里。A - B (1公里)那么就是A点到B点的距离是1公里,同理:1994 - 1995 ( 1年)1994 和 1995就是相当于A和B,它叫时间点,A到B是一个路径段,1994-1995是时间段,为什么说这些,因为这涉及到C++ std::chrono库的两个类://时间段。
2025-03-10 22:33:13
686
原创 利用可变参数模板,可打印任意参数和参数值。(C++很好的调式函数)
是 C/C++ 宏定义中的一个特殊标识符,用于表示(Variadic Macros)中的参数包。它允许宏接受任意数量的参数。
2025-03-07 20:13:02
977
原创 C++,巧用模板函数,给每一个类或容器编写一个遍历函数。
所以,不管你是什么类型的容器,字符串,数组,二叉树、、、最后不管三七二十一,都写一个遍历函数。我们在树中可能要查找一个key存不存在,可能要查询有几个一样的DisplayText,下面函数功能是统计有几个DisplayText是一样的节点,并把它放入一个列表中。有过经验的朋友都知道,我们写程序中可能要多次编写遍历函数,对于数组或集合没关系,在捕获列表中 liResult要加& 引用,否则不能修改liResult的值。可能要查找那个文本显示是红色的,等等。时,遍历马上结束,当然,你可以。
2025-02-28 02:35:54
218
原创 再再接上一主题,在C++,函数指针问题,如何使用std::function 和 std::bind?
在Qt中,_GuiTreeView封装了一个my_QTreeWidget,.Net中它封装了一个TreeView控件,其中。说明函数指针问题前,我想设计一个类(_GuiTreeView),它能在Qt、MFC、.Net环境中使用,我在_GuiTree的一个函数,然后我再在_GuiTree中的这个函数中设计一个接口(函数指针),让。现在问题来了,我在my_QTreeWidget中设计的一个菜单,当它点击一个添加按钮时,它会调用。现在,在my_QTreeWidget中,在my_QTreeWidget中。
2025-02-27 01:01:14
318
原创 C++中,关于用 size_t 还是用 int,永远要统一标准。
嗯,这个程序运行了几个月,甚至几年,有一天,其中有好几个应用用pkg_to_memory打包了好多数据,完全没问题。但是,后来为了兼容性,你改了程序,把int改为size_t:
2025-02-24 00:44:36
184
原创 接上一主题,在Qt中,用信号代替函数指针,最终目标都是能直接使用lambda表达式,效果一样。
上次说到,我想加一个QTextEdit放在 my_QWidget上,在不使用其它任何控件的情况上,让QTextEdit随窗体的大小改变而布满整个窗体,如何做。第三个方法是:使用Qt中的信号。最后附上代码,只加了两行语句。第二个方法是:使用函数指针。一个方法是:使用继承。
2025-02-22 14:19:50
361
原创 用C++写一个比python的print还方便的函数,支持任意数据类型。
在_p的实现中,所有内容都由_tostr函数完成,注意,像。这样的显示函数性能慢它几万倍也没关系,不要说十几倍。
2025-02-22 10:33:06
224
原创 在Qt中,巧用lambda表达式和函数指针设计通用的Widget(事件处理器)。
我想加一个QTextEdit放在 my_QWidget上,在不使用其它任何控件的情况上,让QTextEdit随窗体的大小改变而布满整个窗体,如何做。注意,不能这样定义,这样无法访问QTextEdit?虽然这样可以,但失去意义!捕获也不行,无法转换。
2025-02-18 00:55:53
247
原创 C++中字节是如何合并的,指针的内存是如何分布的?
现在假设你有二个_byte整数分别是:b1 = pb[0], b2 = pb[1],要把它们合并成_uint16位,pb2[0] = b1;16位无符号整数515的机器码。16位无符号整数515的机器码。
2025-01-18 10:41:24
283
原创 实现QByteArray的任意进制转换
实现代码: 第一个函数例子:static _string intToStrN(const __int64& iNumber, const _char* snDefine); 输出结果:输出结果:例子:输出:
2025-01-11 11:55:20
392
原创 下面代码谁能帮我解释一下?
base1 是 base2的基类,_AnyHelperBase也是_AnyHelper 的基类,为什么结果却不同?_AnyHelper 与 _AnyHelperBase。base1 和 base2。
2024-12-02 08:56:51
179
原创 接上一主题,C++14中如何设计类似于std::any,使集合在C++中与Python一样支持任意数据?
C++: 上面一行代码中,有 char Array[], int, wchar_t Array[], 链表, Dobule下面我们设计一个类 _any,它在构造函数如果是这样,上面语句就能编译过关。上面最难的地方是在类_any内部中如何保存 tValue的值,如果把类声明为模板类,很容易解决,但是就要在每_any指定模板参数T,这样行不能? 用: std::shared_ptr吗?auto s = std::make_shared(tValue);也不行,变量声
2024-11-23 23:34:53
467
原创 C++ 中void* 指针所指的内存为什么不能用delete删除?
因为当void* p指向一个对象时,例如string对象,使用delete删除p所指内存时,它并不会调用string对象的析构函数,因为编译器根本不知道p的类型是什么?因为当void* p指向一个对象时,例如string对象,使用delete删除p所指内存时,它并不会调用string对象的析构函数,因为编译器根本不知道p的类型是什么?什么也没输出,并没有调用_any的析构函数。
2024-11-23 00:21:29
253
原创 C++中如何实现类似Python的集合set中可以保存任意数据类型?(初步)
至于完整功能地实现Python的集合set,我还未实现,等实现了下次再给出完整代码,这里可能关键的是设计是一个py_object,py_object能接收或转换C++任意数据类型,实际上集合所保存的数据只有一种,就是py_object。这是一个集合set,集合中包含整数,小数,字符串,用C++标准库的set是无法实现的,这里的std::set是一个模板类,要提供模板参数,除非你编写一个object类,能把。如果实现object类,这个有点复杂,下次再讲,我的第一步目标下面语句能在C++中能。
2024-11-19 22:44:21
308
原创 模板元函数应用:输出字符串。
但问题来了,如何判断T是 ANSI 还是UNICODE呢,这样子。如果你想正确运行,除非再增加一个重载函数。或者在类_StrA中增加一个类型转换函数。但是再增加一个类型呢?
2024-11-17 14:46:30
283
原创 双向链接表的反向迭代器(更新)( VC 和 QT都已编译过关)
反向迭代器:_DListNodeReverseIterator。正向迭代器:_DListNodeIterator。
2024-10-19 16:39:17
261
原创 类型转换 与 explicit 关键字作用
在这里,你当然希望编译器可以自运转换想要的类型,这时你就把应该把exclipcit关键字去掉。有时候,如果你不希望编译器帮你自动转换类型,就用关键字 explicit。
2024-10-19 16:27:16
275
原创 稳定排序std::stable_sort 与 自定义多规则排序。
待排序的记录序列中可能存在两个或两个以上关键字相等的记录。排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。比如int数组[1,1,1,6,4]中a[0],a[1],a[2]的值相等,在排序时不改变其序列,则称所用的方法是稳定的。
2024-10-12 00:52:30
391
原创 实现std::sort,replace,fill,accumulate,equal等函数
std::sortstd::sort执行结果:(1次)(2次)由于程序是刚写的,并没有什么优化和测试,发现性能不错。:)例子2 标准库std::sort好像不支持链表。
2024-10-10 00:14:29
315
原创 C++ 线性表、内存操作、 迭代器,数据与算法分离。
线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。不理解这个,你会感觉标准库非常难用,明明很简单的事,为什么搞得那么复杂。即可以对线性表操作,又可以对链表操作,缺点是,在这后面,你要做夶多的工作。,是因为要数据与算法分离,这是C++标准库的核心,如果。因此,设计迭代器的核心是可以数据与算法分离。
2024-10-03 12:43:51
588
原创 C++中,如何使你设计的迭代器被标准算法库所支持。
DListNodeIterator : _DList正向迭代器,继承于。下面是_DList源码,最后修改于2024-10-01。std::iterator : 标准库读写迭代器。_DList :是一个双向链表。
2024-10-01 18:26:19
629
原创 新版双向链表,添加了at, front, back, insert, emplace等为了兼容std.
【代码】新版双向链表,添加了at, front, back, insert, emplace等为了兼容std.
2024-09-26 02:13:41
495
原创 神奇的可变模板参数的应用(C++标准库双向链表 list 中的emplace函数实现)
【代码】神奇的可变模板参数的应用(C++标准库双向链表 list 中的emplace函数实现)
2024-09-23 03:49:46
454
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人