![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
C++
Roxas__
这个作者很懒,什么都没留下…
展开
-
C++ Primer 数组 笔记
数组定义时的编译器扩展因为数组中元素的个数是属于数组类型的一部分,编译的时候维度应该是已知的,所以说,定义数组时数组的维度必须是一个常量表达式,如下:unsigned cnt = 42; // 不是常量表达式constexpr unsigned sz = 42; // 常量表达式,关于constexpr,参见2.4.4节int arr[10]; // 含有10个整数的数组int *parr[sz]; // 含有42个整形指针的数组string bad[cnt]; // 错误:原创 2020-12-08 20:50:44 · 107 阅读 · 0 评论 -
QGraphicsItem::boundingRect() 笔记
在官方示例《Elastic Nodes Example》中进行试验,得到以下的现象:初步确定boundingRect的两个参数,第一个是一个QPointF型(点坐标),第二个是一个QSizeF型(size元组)。其中第一个点坐标,设置的是,在item的边框矩阵内做一个坐标系,这个坐标系对应于边框矩阵左上角的点的坐标是什么。如果传(0, 0),则边界矩形左上角坐标就是(0, 0);如果传(- width / 2, -height / 2),边界矩形左上角坐标就是(- width / 2, -height原创 2020-11-28 10:25:11 · 5168 阅读 · 1 评论 -
力扣 #452 用最少数量的箭引爆气球(排序+贪婪) 笔记
#include <iostream>#include <vector>#include <algorithm>using std::vector;using namespace std;class Solution{public: int findMinArrowShots(vector<vector<int>>& points);};int Solution::findMinArrowShots(vect原创 2020-11-25 12:54:18 · 75 阅读 · 0 评论 -
C++ std::sort() 笔记
力扣 #452sort(points.begin(), points.end(), [](const vector<int> &x, const vector<int> &y){x[1] < y[1];});官方文档:http://www.cplusplus.com/reference/algorithm/sort/原创 2020-11-24 21:31:19 · 1027 阅读 · 0 评论 -
C++ Primer 迭代器 笔记
介绍通过使用迭代器(iterator),可以访问string对象中的字符或vector对象中的元素。在第II部分中将要介绍,除了vector之外,标准库还定义了其他几种容器。所有标准库容器都可以使用迭代器,但是其中只有少数几种才同时支持下标运算符。另外,严格来说,string对象不属于容器类型,但是string支持很多与容器类型类似的操作,如string也支持迭代器。使用迭代器拥有迭代器的类型同时会拥有返回迭代器的成员函数。比如,这些类型都拥有名为begin和end的成员。其中begin成员负责返回指原创 2020-11-24 20:54:06 · 217 阅读 · 0 评论 -
C++ Primer Ch3习题代码
3.16 编写一段程序,把练习3.13中vector对象的容量和具体内容输出出来。检验你之前的回答是否正确,如果不对,重新学习3.3.1节直到弄明白错在何处。#include <iostream>#include <vector>#include <string>using std::vector;using namespace std;int main(){ vector<int> v1; vector<int>原创 2020-11-24 20:53:42 · 272 阅读 · 0 评论 -
C++ Primer 标准库类型Vector 笔记
vector标准库类型vector表示对象的集合,其中所有对象的类型都相同。因为vector“容纳着”其他对象,所以它也常被称作容器(container)。第II部分将对容器进行更为详细的介绍。C++语言中既有类模板(class template),也有函数模板,其中vector是一个类模板。自定义类模板在16章学习。模板本身不是类或函数,相反可以将模板看作为编译器生成类或函数编写的一份说明。编译器根据模板创建爱你类或函数的过程称为实例化(instantiation),当使用模板时,需要指出编译器应把原创 2020-11-24 14:43:09 · 143 阅读 · 0 评论 -
C++ Primer 初始化 笔记
C++中初始化的方式:直接初始化、拷贝初始化如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化(copy initialization),编译器把等号右侧的初始值拷贝到新创建的对象中去。相反的,如果初始化变量时没用等号,则执行的是直接初始化(direct initialization)。当初始值只有一个时,使用直接初始化或拷贝初始化都行,如果初始化要用到的值有多个,一般来说只能使用直接初始化的方式,以string类型变量为例:string s5 = "hiya"; // 拷贝初始化st原创 2020-11-23 19:35:35 · 124 阅读 · 0 评论 -
力扣 #148排序链表 笔记(归并排序)
题目:因为时间复杂度要求(n*logn),所以考虑归并排序(但归并排序并不满足常数级的空间复杂度,还需要使用快慢指针?)。参考链接:https://www.cnblogs.com/chengxiao/p/6194356.html归并排序:把一个待排序列从中间分两半,每半再各自应用归并排序处理。分出来的左右两半的归并操作中,同样也是先把每半序列再从中间劈开,分成两个子序列,再应用归并排序,以此类推,由此看是一个递归操作。因此由此看来是,在每次归并函数调用中,先检测传进来的序列长度,如果序列中只有1原创 2020-11-21 19:47:17 · 191 阅读 · 0 评论 -
Qt 信号槽机制 笔记
定义信号用signal关键字。如果需要对特定的信号做针对性处理,需要重新实现对应的槽函数,这个槽函数可能是Qt中的类已经定义好的我们来重新实现,也可能是我们自己新定义的槽函数。槽函数和普通函数几乎一样,唯一的不同点就是槽函数可以被connect绑定到信号signal。换句话说,甚至自定义的槽函数完全可以不绑任何信号,当做一个普通函数一样被调用(Qt官方示例:Elastic Nodes Example)。...原创 2020-11-20 20:24:57 · 243 阅读 · 0 评论 -
Qt timer 笔记
QTimerEvent该事件按间隔发送给已经启动一个或多个定时器的对象。每个定时器都有一个唯一的标识符。一个定时器是用QObject::startTimer()启动的。事件处理程序QObject::timerEvent()接收该事件。原创 2020-11-20 18:21:53 · 115 阅读 · 0 评论 -
Qt Creator “Promote to“功能 笔记
Promote to 功能的官方说明:https://doc.qt.io/archives/qt-4.8/designer-using-custom-widgets.htmlQt desiner支持了所有的标准widget的可视化操作,但是一些专门的widget不能像标准widget一样进行可视化操作,因为:在设计用户界面时,自定义widget可能不可用。自定义widget可能是平台依赖的,设计师可能会在与最终用户不同的平台上开发用户界面。自定义widget的源代码不可用,或者用户界面设计人员由于原创 2020-11-12 13:17:43 · 1878 阅读 · 0 评论 -
Graphics View - Elastic Nodes Example 笔记
示例链接:https://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-example.htmlQWidget的geometry属性原创 2020-11-12 12:43:56 · 152 阅读 · 0 评论 -
Basic Graphics Layouts Example 官方示例 笔记
场景场景具有以下功能:为管理大量的 item 提供了一个快速的界面;将事件传播到每个 item;管理 item 状态,如选择和焦点处理。提供未转换的渲染功能;主要用于打印。场景是 item 的容器,用于容纳item。通过调用 QGraphicsScene::addItem() 可以把 item 添加进场景中,然后调用场景的函数获取特定的 item。场景会接收场景中的事件,并把事件传递给和事件相同位置出的item。...原创 2020-11-11 16:21:16 · 167 阅读 · 0 评论 -
《Qt5.9 C++ 开发指南》8.3 GraphicsView绘图框架 笔记
8.3.1 场景、视图与图形项采用 QPainter 绘图时需要在绘图设备的 paintEvent() 事件里编写绘图程序,实现整个绘图过程。这种方法如同使用 Windows 的画图软件在绘图,绘制的图形是位图,这种方法适合于绘制复杂性不高的固定图形,不能实现图件的选择、编辑、拖放、修改等功能。Qt为绘制复杂的可交互图形提供了 Graphics view 绘图架构,是一种基于图形项(Graphics Item)的模型/视图模式,与第5章的数据编辑与显示的 Model/View 模式类似。使用 Graph原创 2020-11-07 15:36:03 · 1156 阅读 · 0 评论 -
《Qt5.9 C++ 开发指南》8.2 坐标系统和坐标变换 笔记
示例1:绘制3个五角星// Widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTprotected: // 先在Widget.h里声明paintEvent()函数的重载,权限protected原创 2020-11-05 13:52:43 · 308 阅读 · 0 评论 -
《Qt5.9 C++ 开发指南》8.1 QPainter基本绘图 笔记
8.1.1 QPainter绘图系统可以在QWidget内使用QPainter画图。QWidget类及其子类是最常用的绘图设备,从QWidget类继承的类都有paintEvent()事件,要在设备上绘图,可以创建一个QPainter对象获取到绘图设备接口,然后使用该对象画图。void QWidget::paintEvent(QPaintEvent *event){ QPainter painter(this); // 创建与绘图设备关联的QPainter对象 ... // painter原创 2020-11-04 12:50:48 · 360 阅读 · 0 评论 -
QGraphicsView学习笔记1 --- 小示例
示例1:int main(int argc,char* argv[ ]){ QApplication app(argc,argv); QGraphicsScene *scene = new QGraphicsScene; //场景 QGraphicsRectItem *item = new QGraphicsRectItem(100,100,50,50); //矩形项 scene->addItem(item); //项添加到场景 QGraphicsView原创 2020-11-04 09:02:29 · 413 阅读 · 0 评论 -
C++ Primer 类型别名、auto类型说明符和decltype类型指示符 笔记
2.5 处理类型2.5.1 类型别名有两种方法可用于定义类型别名(type alias)。传统的方法是使用关键字typedef:typedef double wages; // wages是double的同义词typedef wages base, *p; // base是double的同义词,p是double*的同义词其中,关键字typedef作为声明语句中的基本数据类型(参见2.3节,p45)的一部分出现。和以前的声明语句一样,这里的声明符也可以包含类型修饰,从而也能由基本数据类型构原创 2020-11-03 16:06:56 · 198 阅读 · 0 评论 -
C++ Primer const 笔记
2.4 const限定符用const关键字定义的变量,其值不能被改变,即const不能被赋值。也因此,const定义的变量必须在定义时初始化。引用的类型必须与其所引用对象的类型一致。默认状态下,const对象仅在文件内有效编译器将在编译过程中把用到const变量的地方都替换成对应的值。为了执行上述替换,编译器必须知道变量的初始值。如果程序包含多个文件,则每个用了const对象的文件都必须的能访问到它的初始值才行。要做到这一点,就必须在每一个用到变量的文件中都有对它的定义。为了支持这一用法,同时避免原创 2020-11-03 09:58:33 · 225 阅读 · 0 评论 -
C++ Primer - Ch2笔记 2.1~2.3
无符号整数和有符号整数当我们赋给无符号类型一个超出它表示范围的值时,结果时初始值对无符号类型表示数值总数取模后的余数。例如,8比特大小的unsigned char可以表示0至255区间内的值,如果我们赋了一个区间以外的值,则实际的结果是该值对256取模后所得的余数。因此,把 -1 赋给8比特大小的unsigned char所得的结果是255。负数对正数取模:参考链接:https://blog.csdn.net/oqqHuTu12345678/article/details/73607116由带余除法原创 2020-11-02 14:04:34 · 257 阅读 · 0 评论 -
C++ Primer - Ch1笔记
int main(){ std::cout << "Enter two numbers: " << std::endl; int v1 = 0, v2 = 0; std::cin >> v1 >> v2; std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 <&原创 2020-10-30 21:28:09 · 263 阅读 · 0 评论