- 博客(87)
- 资源 (3)
- 收藏
- 关注

原创 为什么写博客
为什么写博客:没积分,毕竟免费的太少,所以我的资源通通一积分下载。写文章来分享下经验,共同交流进步。记录成长的脚步。如果有侵权,请联系我,毕竟我也不是从零撸的,还是借鉴了很多网友的代码。...
2021-01-20 14:15:04
14
原创 stl::(14)常用拷贝和替换算法
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <iterator>#include <functional>using namespace std;// copy算法 将容器被指定范围的元素拷贝到另一个容器中// replace算法 将旧元素替换为新元素// replace_if算法 按条件替
2021-03-07 00:21:37
3
原创 stl::(13)常用排序算法
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <functional>#include <ctime>using namespace std;// merge算法 容器元素合并,并储存到另一个容器 这两个容器必须是有序的void sortMerge(){ vector<int> v
2021-03-07 00:21:26
7
原创 stl(12)常用算法生成算法
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <functional>#include <numeric> // 支持的头文件using namespace std;// accumulate算法 计算容器元素累计总和void testAccumulate(){ vector<int
2021-03-07 00:21:15
6
原创 stl::(11)常用查找算法
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <functional>using namespace std;// find算法查找元素 返回查找元素位置void find1(){ vector<int >v; for (int i = 0; i < 10; i++) { v.pus
2021-03-07 00:21:05
5
原创 stl::(10)常用遍历算法
#include <iostream>#include <vector>#include <algorithm>#include <functional>using namespace std;void print(int v){ cout << v << "-";}// 函数对象class print2 {public: void operator()(int v) { cout <<
2021-03-07 00:20:54
9
原创 stl::(9)容器使用总结
vector deque list set multiset map multimap 经典内存结构 单端数组 双端数组 双向链表 二叉树 二叉树 二叉树 二叉树 可随机存取 是 是 否 否 否 对key而言:不是 ...
2021-03-05 00:38:55
12
原创 stl::(6)list容器API
list 构造函数list<T> listT; // list采用模板类实现,默认构造list(beg, end); // 构造函数将[beg ,end)区间元素拷贝给本身list(n, elem); // 构造函数将n个elem拷贝给本身list(const list &lst); // 拷贝构造函数list 元素插入和删除操作push_back(elem); // 容器尾部添加一个元素pop_back();
2021-03-04 22:21:49
6
原创 stl::(8)set容器API
set根据元素键值自动被排序,迭代器不能修改键值,键值唯一不重复。set 构造函数set<T> st; // set默认构造函数mulitset<T> mst; // mulitset默认构造函数set(const set &st); // set 拷贝构造函数set 赋值操作set& operator=(const set &st); // 重载=swap(st); .
2021-03-04 22:21:25
3
原创 stl::(7)map容器API
map 构造函数map<T1,T2>mapT; // 默认构造函数map(const map &mp); // 拷贝构造函数map 赋值操作map& operator=(const map &mp); // 重载=swap(mp); // 交换两个集合容器map 大小操作size(); // 返回容器中元素的数目empty(); // 判断容器是否为空map 插入数据元素操作
2021-03-04 22:21:13
2
原创 stl::(5)queue容器API
queue 只有顶端元素,才有机会被外界访问,queue不提供遍历功能,也不提供迭代器。queue 构造函数queue<T> queT; // queue采用模板实现,默认构造queue(const queue& que); // 拷贝构造函数queue 存取、插入、删除操作push(elem); // 往队尾添加元素pop(); // 从队头移除第一个元素back(); // 返回最后一个元素front();.
2021-03-04 22:20:54
2
原创 stl::(4)stack容器API
stack 只有顶端元素,才有机会被外界访问,stack不提供遍历功能,也不提供迭代器。stack 构造函数stack<T> stkT; // stack采用模板类实现,默认构造stack(const stack &stk); // 拷贝构造函数stack 赋值操作stack& operator=(const stack &stk); // 重载=stack 数据存取push(elem); .
2021-03-04 22:20:36
3
原创 stl::(3)deque容器API
deque 构造函数deque<T> deqT; // 默认构造deque(beg,end); // 构造函数将[beg, end)区间元素拷贝给本身deque(n, elem); // 构造函数将n个elem拷贝给本身deque(const deque &deq); // 拷贝构造函数deque 赋值操作assign(beg, end); // 将(beg ,end) 区间的数据拷贝给本身assign(n, elem); //
2021-03-04 22:20:14
4
原创 stl::(2)vector容器API
vector 构造函数vector<T> v; // 采用模板实现类实现,默认构造函数vector(v.begin(), v.end); // 将v[begin(),end())区间的元数拷贝给本身vector(n, elen); // 构造函数将n个elem拷贝给本身vector(const vector &vec); // 拷贝构造函数// 例子,第二个函数可以这样做。。。int arr[]={2,3,4
2021-03-04 22:19:46
2
原创 stl::(1)string容器API
string 构造函数string(); // 创建一个空的字符串string(const string& str); // 使用一个string对象初始化另一个string对象string(const char* str); // 使用字符串str初始化string(int n,char c); // 使用n个字符串c初始化string 基本赋值操作string& operator=(
2021-03-04 22:19:25
2
转载 (5)数组指针和指针数组
数组指针(也称行指针)数组指针, 从字面意思来看就是"指向数组的指针".定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
2021-03-03 00:49:05
9
原创 (3)友元函数和友元类
一、友元(friend)概念:通过友元,打破了类的封装性,可以访问类内的所有成员分类:友元函数、友元类二、友元函数概念:友元函数是一个普通函数,不属于类,但需要在类内表明友元关系友元函数可访问类内所有成员,但类不可以访问友元函数内部数据格式友元函数可以在类内声明时,需要加上关键字friend友元函数可以在类外声明,类外定义。需要加上关键字friendclass Cperson{private:int age;public:friend void setPerso
2021-03-02 20:21:21
6
原创 (4)深拷贝和浅拷贝
浅拷贝:统一类型对象之间可以赋值,使用两个对象的成员变量的值相同,两个对象仍是独立的两个对象。一般情况下,浅拷贝没有任何问题,但是当类中有指针,并且指针指向动态分配的内存 空间,析构函数做了动态内存释放的处理,会导致内存问题#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class Person{public: Person() {} Person(char *name, i
2021-03-02 20:21:03
2
原创 (2)const和static
static关键字的作用:c/c++共有: 1):修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。 2):修饰局部变量时,表明该变量的值不会因为函数终止而丢失。 3):修饰函数时,表明该函数只在同一文件中调用。c++独有: 4):修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有。 5):用sta
2021-03-02 20:20:50
27
1
原创 (1)指针和引用的区别
性质上的区别指针本身是一个变量,存储的是地址,而声明的类型名只是解释说明指针所指的位置应该怎么解读。引用作C++的产物,底层实现其实是一个指针,只是实现出来看起来像别名(更像是一种指针常量,并且像重载了一些操作符的感觉,例如解引用(*)),这造成了一些不同。使用上的区别:引用必须要初始化且不能是NULL,而指针可以是NULL。且指针的值可以改变,引用不能改变(更像是const,常量指针的概念)有const指针,但没有const引用指针可以有多级(** p),引用只有一级"sizeof引用
2021-03-02 20:20:35
8
原创 (6)-圆角图片+边框动态闪烁
话不多说先看图:**第一种方法:**利用Qpainter裁剪图片,没什么毛病,推荐。**第二种方法:**利用位图setMask()设置蒙版的方法(仔细看图片有锯齿,未解决,可以不用位图,试试用图片做蒙版)MainWindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QGraphicsDropShadowEffect>#include <QProperty
2021-02-23 20:13:02
19
转载 Qt-类库模块划分详解
Qt 类库里大量的类根据功能分为各种模块,这些模块又分为以下几大类: Qt 基本模块(Qt Essentials):提供了 Qt 在所有平台上的基本功能。Qt 附加模块(Qt Add-Ons):实现一些特定功能的提供附加价值的模块。增值模块(Value-AddModules):单独发布的提供额外价值的模块或工具。技术预览模块(Technology Preview Modules):一些处于开发阶段,但是...
2021-02-15 15:19:49
46
原创 (4)QPainter 的基本绘图使用
效果图如下:代码如下:void MainWindow::paintEvent(QPaintEvent *){ QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 设置反锯齿 // 设置字体:微软雅黑\点大小13\斜体 QFont font; font.setFamily("Microsoft YaHei"); font.setPointSize(13); font.se
2021-02-15 15:06:51
43
原创 (3)颜色渐变风格
1、线性渐变QLinearGradient// 第一种void Widget::paintEvent(QPaintEvent *event){ QPainter painter; painter.begin(this); QLinearGradient ling(QPointF(70, 70), QPoint( 140, 140 ) ); //从起点到终点的渐变 ling.setColorAt(0, Qt::blue); //起点到中心要显示的颜色 lin
2021-02-15 11:49:27
16
原创 (2)颜色渐变及原理
渐变有三种:QLinearGradient, QConicalGradient and QRadialGradient1、QLinearGradientQLinearGradient 是线性渐变,也就是颜色的各个分量(red, green, blue)在两点之间的变化是线性的,需要设置渐变的起始和结束坐标、颜色,超出渐变范围的填充方式,它并不能单独的使用,而是要和 QBrush 一起使用实现填充效果,主要有以下一些函数:// 创建 QLinearGradient,同时设置起始和结束坐标QLinear
2021-02-15 11:37:13
56
原创 (1)2D绘图详解(QPainter)
一、Qt绘制事件当应用程序收到绘制事件时,就会调用QWidget::paintEvent(),该函数就是绘制窗口的地方。有两种方法要求重绘一个窗口1.update() --把重绘事件添加到事件队列中重复调用update()会被Qt合并为一次不会产生图像的闪烁可带参数指定重绘某个区域2.repaint() --立即产生绘制事件一般情况下不推荐使用此方法只使用在需要立即重绘的特效情况下可带参数指定重绘某个区域基本绘制QPainter类提供绘制操作,其构造函数原型为:QPaint
2021-02-15 11:03:25
48
转载 Qt-认清信号槽的本质
目录(放个目录方便预览。这个目录是从博客复制过来的,点击会跳转到博客)简介猫和老鼠的故事对象之间的通信机制尝试一:直接调用尝试二:回调函数+映射表观察者模式Qt的信号-槽信号-槽简介信号-槽分两种信号-槽的实现 元对象编译器mocmoc的本质-反射参考文献简介本文是《Qt实用技能》系列文章的第四篇,涛哥在这里讨论Qt信号-槽相关的知识点。信号-槽是Qt框架中最核心的机制,也是每个Qt开发者必须掌握的技能。网络上有很多介绍信号-槽的文章,也可以参考。涛哥的专栏是《Qt进阶之路》,如果连信号-槽的文章都没有,将
2021-02-11 10:14:12
37
原创 17-QTabWidget
/********************************************QTabWidget*********************************************************//*标签栏*/QTabWidget::pane { /* The tab widget frame */ border-top: 2px solid #00C2C7CB; position: absolute; top: 10px; backgro
2021-02-10 14:44:53
8
原创 (5)-Qwt图表
代码较多,代码补贴了,当时刚学的作品,代码也不规范,大佬请绕道。话不多说,先看图:源码下载地址:https://download.csdn.net/download/qq_40329851/15174730
2021-02-10 13:33:04
9
原创 7-获取控件坐标
// 获得相对于窗口的坐标 QPoint sPoint1 = ui->textEdit->mapToParent(QPoint(0,0)); qDebug() << "相对于窗口坐标:" << "(" << sPoint1.x() << "," << sPoint1.y() << ")"; // 获得相对于屏幕的坐标 QPoint sPoint2 = ui->textEdit->mapToGl.
2021-02-10 11:07:31
9
原创 Qt-坐标总结
1、QPoint QMouseEvent::pos()这个只是返回相对这个widget(重载了QMouseEvent的widget)的位置。const Returns the position of the mouse cursor, relative to the widget that received the event. If you move the widget as a result of the mouse event, use the global position returned
2021-02-10 10:54:33
9
原创 (4)-QLineEdit搜索框
话不多说,先看图: QAction *searchAction = new QAction(ui->lineEdit); searchAction->setIcon(QIcon(":/icon.png")); QPushButton *button=new QPushButton(); button->setCursor(Qt::ArrowCursor); QObject::connect(button, &QPushButton::clicked, [] {
2021-02-10 10:30:56
24
转载 1-简单粗暴图解网络
图解 | 你管这破玩意叫网络?你是一台电脑,你的名字叫 A很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来。用一根网线连接起来怎么就能"通信"了呢?我可以给你讲 IO、讲中断、讲缓冲区,但这不是研究网络时该关心的问题。如果你纠结,要么去研究一下操作系统是如何处理网络 IO 的,要么去研究一下包是如何被网卡转换成电信号发送出去的,要么就仅仅把它当做电脑里有个小人在开枪吧~反正,你们就是连起来了,并且可以通信。第一层有一
2021-02-09 21:10:30
60
原创 (3)-QPropertyAnimation动画类
话不多说先看图:属性Q_PROPERTY使用和介绍可以看这篇:反射机制之Q_PROPERTY代码不难,自行观看。MainWindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPropertyAnimation>#include <QGraphicsOpacityEffect>#include <QSequentialAnimationG
2021-02-09 17:04:08
30
1
原创 6-显示和隐藏控件
1.显示/隐藏控件、不再占位置会改变布局。ui->loginBtn->setVisible(false);ui->loginBtn->setVisible(true);2.通过析构和重新new实现显示/隐藏、不再占位置会改变布局。ui->loginBtn->hide();ui->loginBtn->show();...
2021-02-09 08:35:08
7
原创 5-提升控件类仍然支持QSS
重写paintEvent事件class Widget: public QWidget //此类继承QWidgetvoid Widget::paintEvent(QPaintEvent* event){ QStyleOption styleOpt; styleOpt.init(this); QPainter painter(this); style()->drawPrimitive(QStyle::PE_Widget, &styleOpt, &painter, this
2021-02-08 09:06:31
7
转载 Qt模型/视图原理(4):自定义视图(QAbstractItemView)
Qt模型/视图原理(4):自定义视图(QAbstractItemView)本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址: https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q 《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg 若对C++语法不熟悉...
2021-02-08 08:53:41
12
转载 Qt模型/视图原理(3):自定义委托(QAbstractItemDelegate)
Qt模型/视图原理(3):自定义委托(QAbstractItemDelegate)本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址: https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q 《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg 若对C++语...
2021-02-08 08:49:55
17
转载 Qt模型/视图原理(2):自定义模型(QAbstractItemModel)
Qt模型/视图原理(2):自定义模型(QAbstractItemModel)本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址: https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q 《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg 若对C++语法不熟...
2021-02-08 08:47:17
25
转载 Qt模型/视图原理(1):基本理论
Qt模型/视图原理(1):基本理论本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址: https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q 《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg 若对C++语法不熟悉,建议参阅本人所著《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C.
2021-02-08 08:44:21
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝