- 博客(48)
- 收藏
- 关注
原创 C++当中的移动语义
我们发现,上述的所有拷贝场景都围绕着一个,那就是临时对象。临时对象即将就会被销毁,但是该对象内部持有动态资源(很有可能很大)为了能够保留被销毁的对象(主要是保留其中的资源)我么就需要吧这个销毁的对象进行一个代价非常昂贵的拷贝的这样一个操作。所以这就引发我们的一个思考,那就是,我们如何来降低这样的一个拷贝的开销。所以我们就把思路转移到,如何进行资源的转移当进行资源的转移时,其实就是一个类似于浅拷贝的这样一个操作,本质上来讲就是将一个对象的资源的所有权转移给另一个对象。这样的开销就会比代价非常昂贵。
2025-02-17 02:01:54
715
原创 解决vs控制台输出的乱码问题
在构造函数中调用此函数,SetConsoleOutputCP(65001);包含头文件 include<Windows.h>
2024-12-31 11:12:54
76
原创 位操作位操作位操作
呵呵哈哈哈哈哈哈哈哈哈和哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。
2024-10-12 01:22:08
252
1
原创 JSON字符串介绍
QJsonObject封装了JSON中的对象,可以存储多个键值树,其中 键为字符串类型,值为QJsonValue类。JSON数组中的元素可以是不同的数据类型 , 包括:证书,浮点,字符串,布尔,JSON数组,JSON对象 ,空值。布尔类型,浮点类型 ,字符串类型 ,Json数组类型 ,Json对象类型 , 空值类型。键是字符串类型,值的类型可以是:整形,浮点,字符串,布尔类型,JSON数组,JSON对象,空值。JSON,其实就是一种特殊格式的字符串。[元素1 ,元素2,元素3,元素4]
2024-07-22 17:44:27
1365
原创 c++11----之----智能指针
当我们用两个指针指向同一个堆区空间时,会出现一个问题,那就是不能对同一个堆区空间delete两次。为避免两个指针指向同一个堆区空间,有三种方法1,深拷贝2,建立所有权概念,也就是对于特定对象只能有一个智能指针可拥有它。3,对特定对象进行引用计数,赋值时计数加一,指针过期时计数减一仅当最后一个指针过期时,调用 delete。
2024-05-17 17:59:06
758
原创 基于c++11的多线程基础知识
th.join() 阻塞等待子线程退出。th.detach() 子线程与主线程分离。包含头文件 #include1.3 lambda表达式创建线程。1.2 传入类成员函数创建线程。1.1 传入函数创建线程。
2024-05-10 16:32:55
233
原创 简易TCP客户端和服务器端通信
int main()cout << "客户端" << endl;//设置Winsock版本,= 0)exit(1);//创建通信套接字//创建用于通信的套接字//1,创建用于通信的套接字exit(1);//2,连接服务器IP//端口,主机转网络字节序,服务器端口//地址族// 服务器IP地址//3,建立连接return 0;//4,开始循环发送while (1)
2024-04-28 22:01:16
1047
原创 套接字以及相关函数
PF_IPX IPX Novell协议族。PF_LOCAL 本地通信的UNIX协议族。protocol 计算机间通信中使用的协议信息。protocol 计算机间通信中使用的协议信息。PF_PACKET 底层套接字的协议族。domain 套接字中使用的协议族信息。domain 套接字中使用的协议族信息。SOCK_STREAM 面向连接套接字。SOCK_DGRAM 面向消息套接字。失败:返回 INVALID_SOCKET。
2024-04-27 23:07:43
348
原创 QT雷达扫描图
/画扇形**********************************************************//绘制圆形********************************************************//锥形渐变 起始角度为 startrecv *********************************painter.drawPie(pieRect,-startrecv*16,36*16)//画扇形。//绘制矩形,将界面全部涂黑。
2024-04-25 17:16:45
534
3
原创 c++常用基础知识八股
一,指针和数组的区别 1,数组指的是一块连续的内存,存放元素类型都相同, 指针是一个变量,保存了一块内存地址。 2,长度不同,用sizeof计算数组,计算的是这块连续内存的长度。 3,赋值方式,数组和数组之间不能直接赋值,指针可以直接赋值。 4,指针可修改,数组不行,例如 str:指针变量; ch[16]:数组 str++ 正确; ch++ 错误;
2024-03-20 17:44:09
1653
原创 Qt Excel文件读写
QAxObject是Qt框架中用于与ActiveX控件和COM对象进行交互的类。它使得在Qt应用程序中嵌入和使用ActiveX控件,或者操作COM对象成为可能。通过QAxObject,你可以在Qt中方便地操作Excel、Word等Office应用程序,以及许多其他支持ActiveX或COM技术的应用程序。
2024-03-18 18:43:26
2740
原创 Qt 样式表
Qt样式表可以在帮助文档中搜索 "在帮助文档中可更详细的查阅相关资料。通常情况下我们需要知道样式表中的各个样式,需要我们查阅官方文档的相关资料;可以在帮助文档中搜索。
2024-03-04 17:01:11
685
原创 C++简易二叉树的创建与遍历
#include<iostream>#include<string>using namespace std;//二叉树节点typedef struct BINARYNODE{ char ch; struct BINARYNODE* lchild; //左子树 struct BINARYNODE* rchild; //右子树}BinaryNode;//递归遍历void Recursion(BinaryNode* root){ if(roo
2024-02-21 14:09:33
357
原创 QListWidget组件功能
QListView::IconMode 是图标模式。QListView::ViewMode是一个枚举,两个取值。其中:QListView::ListMode 是列表模式。两种显示模式:列表模式,图标模式。
2024-02-11 00:04:37
440
原创 QT时间日期与定时器
QDateTime: 表示日期时间 如 2017-03-23 08:12:43。QTime: 时间数据类型,仅表示时间,如 15:23:13。QDate: 日期数据类型,仅表示日期,如 2017-4-5。
2024-02-07 11:11:29
999
原创 Qt Charts基础
chart->setTitle("简单函数曲线");series->setName("实验曲线");//序列添加数值 ********在.cpp或者.h文件中添加头文件。
2024-01-16 17:14:09
485
原创 c++第二章 文件读写
/**************** 写入文件 ****************//**************** 读取文件 ****************//打开一个文件,如果文件已经存在,销毁重新创建。
2024-01-10 23:57:57
353
原创 Qt 用XML流,QXmlStreamReader解析读取xml
QXmlStreamReader是应用程序代码自身来驱动循环,在需要的时候可以从读取器中一个接一个地拉出记号。然后使用 isStartElement() 和 text()等函数来判断这个记号是否包含需要的信息。//如果没有读到文档结尾,而且没有出现错误。//读取下一个记号,它返回记号的类型。//下面根据记号的类型来进行不同的输出。//设置文件,这时会将流设置为初始状态。//文本,判断文本是否为空。//判断读取是否有错误。/*xml版本号*//判断是 /否由属性。
2024-01-09 15:55:47
1638
原创 c++引言,第零章 c++开发周期
源代码---------------------->修改源代码------->编译器----------->机器代码-------------------->可执行代码-------->运行可执行代码。我们必须首先创建程序,编译它,然后才能执行。就是提供了集成开发环境,以便进行c++程序快速开发的软件。常用的IDE有微软的 Visual C++、
2024-01-08 23:25:53
352
原创 Qt 绘图大全
/************ QPen 使 用 ************************************************************QPen用于绘图时对线条进行设置,主要包括线宽,颜色,线型等,//函数原型void setColor(QColor &color) //设置画笔颜色,即线条颜色。void setWidth(int width) //设置线条宽度。
2024-01-05 17:24:44
947
1
原创 c++ 回调函数
定义:如果一个函数的名字被当作参数使用,那么这个函数就是回调函数!//通过指针变量p调用MyAdd函数。//通过指针变量p调用MyAdd函数。//设计一个算法,操作上面的函数。
2024-01-03 22:27:21
371
1
原创 Qt Dom操作xml文件写操作
Dom写入xml文件操作,首先在 .pro 文件中添加以下代码:然后才开始编辑:先解决Qt中文乱码问题:加入以下代码。添加头文件:1 , 首先使用QDomDocument类在内存中生成一棵DOM树,然后添加xml声明2 , 声明添加后,开始添加节点和元素 先将根节点(root)添加到doc树中,然后将子节点和元素,放在根节点下, 也就是说,最后只需要将根(root)节点添加到树中即可。 先添加根节点: 3 , 添加子节点和元素: 4 ,添加各节点文本内
2024-01-03 14:23:31
374
1
原创 Qt绘制,文本,抗锯齿,平移旋转缩放
painter.drawText(50,259,"start");painter.setRenderHint(QPainter::Antialiasing , true);painter.translate(50 , 50);painter.scale(0.7 , 0.7);
2023-12-28 18:55:32
577
1
原创 Qt绘图 圆,椭圆,圆弧,路径
QPainter painter(this); QPen pen; //创建画笔 pen.setBrush(Qt::red); pen.setWidth(10); //宽度 pen.setStyle(Qt::SolidLine); //画笔风格 pen.setCapStyle(Qt::FlatCap); //画笔端点风格 pen.setJoinStyle(Qt::BevelJoin); //画笔连接风格 painter.setPen(pen);
2023-12-27 17:50:28
1309
1
原创 QPainter Qt绘图,pen
【例】: QPen pen; pen.setBrush(Qt::red) //设置画刷颜色 pen.setWidth(10); //设置宽度 pen.setStyle(Qt::SolidLine); //设置画笔风格 pen.setCapStyle(Qt::FlatCap); //画笔端点风格 pen.setJ
2023-12-26 15:51:47
191
1
原创 QPainter Qt 绘图基础点,线,矩形
首先我们需要创建一个绘图事件函数然后设置一个画家QPainter painter(this);画点:首先设置点的数量和坐标:QPoint points[4] = { QPoint(10,80), QPoint(20,10), QPoint(80,30), QPoint(90,70), };开始画点:painter.drawPoints(points,4);绘制线:painter.drawLine(points[0],points[2]);接下来是循环绘制,循环绘制的特点在于,要移动一个已
2023-12-25 17:56:37
567
原创 c++多态
编译时多态(静态多态):函数重载,运算符重载,重定义。运行时多态(动态多态):虚函数。在c++中,当通过基类指针(或引用)请求调用虚函数时,c++程序会在运行过程中正确地选择与对象关联的派生类中重定义的虚函数。虚函数的定义和使用: virtual double area();1 , 在派生类中重定义的虚函数函数签名必须与基类完全一致,而关键字virtual可以省略。2 , 虚函数不能是友元函数或静态成员函数。3 , 构造函数不能是虚函数,而析构函数可以是虚函数。4 , 基类的
2023-12-23 01:21:13
47
1
原创 Qt 事件过滤器
事件过滤器是QObject提供的一种处理事件的方法。它将一个对象的事件委托给另一个对象来监视并处理。本文会介绍一个示例,本示例中,窗口是两个标签的事件过滤器,监视和处理两个标签的事件。我们可以将委托的对象称之为甲方对象,将被委托的对象称之为乙方对象。甲方对象将涉及到自己的事件委托给乙方对象来实现,其中,甲方对象调用installEventFilter(QObject *filterObj );里面的参数为乙方。【例子】:我在界面上放一个Label,将Label相关事件委托给主界面类
2023-12-22 16:53:21
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人