- 博客(69)
- 资源 (3)
- 收藏
- 关注
原创 QPaint练习000(绘制实时显示数字&一个圆圈&一个渐变外圆+指针+动态扇形)
【代码】QPaint练习000(绘制实时显示数字&一个圆圈&一个渐变外圆+指针+动态扇形)
2024-03-04 07:54:33 69
原创 QPaint练习000(绘制实时显示数字+一个圆圈+一个渐变外圆+指针)
【代码】QPaint练习000(绘制实时显示数字+一个圆圈+一个渐变外圆+指针)
2024-03-04 07:32:25 139
原创 QPaint绘制自定义坐标轴组件00
鼠标右键->改变样式表->添加颜色->background-color->选择合适的颜色->ok->Apply->ok。3.添加一个用于绘制自定义控件的控件,一般是Qwidget,修改QWidget的类属性,提升为自定义的类。重新编译运行后,原来的QWidget子窗口页面变成了自定义的Mychart页面。提升类完成后qt designer显示当前组件已经是MyChart类。编写应用代码,应用自己编写的MyChart类实现数据刷新。2.创建一个自定义的widget窗口小部件类,编写晚代码后运行效果。
2024-02-16 11:58:28 419
原创 c++ friend
/ 总之,使用友元函数和友元类时需要注意设计的合理性、代码的可读性、可维护性和安全性,以保证代码的质量。// 1. 友元函数和友元类破坏了类的封装性。即如果类 B 是类 A 的友元,类 C 是类 B 的友元,那么并不意味着类 C 也是类 A 的友元。// 2. 友元函数和友元类可以访问类的私有成员变量和成员函数,这会导致代码的可读性和可维护性下降。即如果类 B 是类 A 的友元,但在其它类中声明的类无法访问类 A 的私有成员。即如果类 B 是类 A 的友元,但是对于类 B 来说,类 A 并不是其友元。
2024-02-14 02:05:05 395
原创 c++ system calls chrono
系统服务包括与操作系统、硬件、网络等底层资源交互的函数,旨在提供对底层资源的访问和管理,保证应用程序能够正常运行。上述函数都是C++系统服务中常用的函数,它们提供了对操作系统底层资源的访问和管理,是系统编程所必需的。C++中的chrono是时间库,用于实现时间相关的功能,例如计时器、执行时间、日期等。内存管理函数:可以获取当前进程的内存使用情况、分配和释放内存等。时间函数:可以获取系统时间、计算时间差、格式化时间等。函数:可以读写文件、创建和删除文件、设置文件属性等。、线程名称、创建和销毁线程等。
2024-02-13 17:00:49 137
原创 bfs广度优先搜索
从队列中取出首个未被访问的节点,并将其访问,并将其所有的邻居节点加入队列中。一旦访问某个节点,就将其标记为已经访问过的节点。递归方式实现BFS需要考虑调用堆栈的深度问题,在搜索深度较大的情况下会出现堆栈溢出的情况,因此较为推荐的是迭代方式。在BFS过程中,每个节点都被访问一次,并且所有节点都可以按照它们的距离(深度)从根节点分类。该算法是解决许多图论问题的基础,例如寻找节点之间的最短路径,查找图中的连通性等等。2. 为了避免一个节点被重复访问,可以添加一个visited的数组,记录每个节点的状态。
2024-01-23 00:45:04 406
原创 dfs深度优先搜索
1. 判断当前节点是否符合条件,如是否已经访问过、是否在矩阵范围内、是否匹配需要找的单词、是否为目标节点等。在搜索过程中,需要使用visited数组等方式来确保每个节点被访问一次,避免重复访问。需要将搜索过程中的状态变化、递归调用等步骤清楚地理解清楚,以便正确地实现算法。在DFS搜索过程中,需要选择好的邻居节点来递归进行搜索,以提高搜索效率。2. 如果当前节点符合条件,进行相应的状态变化,然后递归搜索邻居节点。3. 在递归搜索邻居节点时,需要注意防止死循环和重复访问的情况。1. 树和图的遍历。
2024-01-23 00:20:37 838
原创 c递归算法模型
递归算法模型的核心思想是将一个大问题通过递归的方式拆分为若干个较小的问题,并不断递归下去直到问题变得足够简单,直接求解即可。这个思想实质上也是分治思想的一种应用,将大问题分解为若干个子问题,进而得到子问题的解,最后将子问题的解整合起来得到原问题的解。3. 递归算法模型的实现过程中如果存在大量计算,则很容易产生栈溢出,因此在使用递归算法模型时需要尽量避免出现超长递归链的情况。总之,递归算法模型能够很好地解决许多问题,但是需要注意细节问题,避免程序出现异常情况,从而实现高效稳定的程序执行。
2024-01-22 23:37:15 994
原创 c++关键字const
const修饰的成员函数表示该函数保证不会修改类的成员变量,从而保证对象的状态不会被改变。为了避免const使用时出现的错误,需要在使用时注意以上细节,如常量的定义和初始化、使用const修饰的指针、const修饰的成员变量和成员函数、以及常量对象的初始化等细节。- 如果类中有一个const成员函数,那么该成员函数是类的常量成员函数,只能被const对象调用,不能被非const对象调用。const修饰的数据在定义时必须进行初始化,且不能被修改,因此使用const可以提高代码的安全性和可读性。
2024-01-15 01:37:55 630
原创 c++关键字static
它们与类相关联,而不是与类的对象关联,因此可以被所有类的对象共享。它们只有一个实例,并且可以在类的任何成员函数中修改,从而可以用来记录该类的所有对象的统一信息。静态成员函数不能被声明为虚函数,因为虚函数实现需要运行时的信息,而静态成员函数不依赖于类的对象,无法确定运行时的信息。静态成员变量和函数并不依赖于类的任何对象,它们是类的属性,因此不需要通过类的对象访问,可以通过类名直接访问。静态成员变量和函数是公有的,可被所有对象访问,但是无法访问类的非静态成员。静态成员变量必须在类外进行定义,且只能定义一次。
2024-01-14 16:44:08 424
原创 c++ this指针
5.非静态成员函数中可以直接使用this来代表指向该函数作用对象的指针,静态成员函数中不能使用this指针,因为静态成员函数并不具体作用与某个对象,因此,静态成员函数真实的参数的个数,就是程序中写出的参数个数。this指针存在与类中每一个普通成员函数中,类的普通函数访问类的普通成员的时候,this总是指向调用者的对象,this指针不能修改指向。this指针其实是隐藏起来的,当类的成员与参数是同一个名字时,需要使用this指针,否则不需要使用this指针。2.只能在“成员函数”的内部使用。
2024-01-02 00:35:11 448
原创 c++数据测试
在这个示例中,我们首先创建了一个`DataBase<std::string>`的实例化对象,并将两个字符串存储到`m_dataulink`和`m_datadlink`向量中,分别使用`setData()`来设置这两个向量中的数据。需要注意的是,这个示例只测试了`DataBase`类的`setData()`和`getData()`方法,实际上,这里也只有`整数int`类型一个成员变量,而使用时,需要根据实际情况进行更多类型的测试。然后我们使用`getData()`方法分别获取这两个向量中的数据,并打印结果。
2023-11-14 01:21:27 72
原创 c++析构函数
类的对象不是因为调用了析构函数导致声明周期结束,而是对象的生命周期结束时,会自动调用析构函数。析构函数是一种特殊的函数,主要作用是对象生命周期结束时进行清理,系统可以自动调用析构函数。如果定义了一个类的析构函数,则系统不会自动为该类生成默认的析构函数。任何一个类只可能有一个析构函数,因为析构函数是固定的,不可能重载。如果自己没有声明和实现析构函数,系统会自动生成一个析构函数。如果是栈区的对象则是在函数结束的时候调用析构函数,如果是堆区的对象则是在delete是调用析构函数。
2023-11-12 19:02:16 20
原创 c++构造/析构/拷贝构造/移动构造/复制构造
构造函数可以用来初始化对象的成员变量,对它们进行一些初始化操作和初始化检查等。它的名称与类的名称完全相同,没有返回值类型,可以带有参数,也可以没有参数。构造函数是一种特殊的成员函数,用于在创建对象时初始化对象的成员变量。在创建对象时,需要调用相应的构造函数,该构造函数会执行对象的初始化。使用构造函数时,需要在类定义的内部声明构造函数,同时还需要实现它。在创建对象时,构造函数会自动被调用,初始化对象的成员变量。
2023-11-07 00:55:42 44
原创 shell学习:echo
",""表示里边为一个整体,全都会被打印出来。打印的结果是n,应该是'\'被当成了续行符,因为在shell中,输入命令可以使用'\'来续行,效果与同一行输入命令一样。开启反斜杠转义,输出结果world会换行,如果是\t,中间会隔开一个table间距。''在shell中表示强引用,所有里边的内容被识别成字串,不去解析里边的任何含义。打印的结果是hello world,中间只有一个空格,其他的空格不会被打印。"会打印出倒数第一条输入的命令以及这条命令输出的结果。\e[0m,表示结束,0m表示恢复到默认设置。
2023-10-17 00:51:21 31
原创 c++的string类
C++ 的 string 类是一个用于操作字符串的数据类型,它提供了很多方便快捷的字符串操作方法。使用 string 类可以有效避免字符串缓冲区溢出等一系列问题。
2023-10-16 23:34:50 27
原创 c++命名空间namespace
命名空间namespace是用来组织和重用代码的编译单元,通过命名空间来避免冲突,解决重名现象。C++命名空间是一种将标识符封装在命名区域中的机制,以避免与其他标识符发生冲突,以及提高代码的可读性和可维护性。命名空间可以定义在任何C++程序的范围内,在命名空间中定义的变量、函数、类等的名字前需要加上命名空间的名称,以隔离到其他命名空间的同名或全局作用域中的标识符。包括全局作用域、函数内、类定义内等等。// 命名空间中的代码块。
2023-10-15 18:25:29 30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人