25.Qt Quick QML-500行代码实现"合成大西瓜游戏"
"合成大西瓜"这个游戏在年前很火热,还上过微博热搜,最近便玩了一阵还挺有意思的,所以研究了一下小球碰撞原理,自己亲自手写碰撞算法来实现一个合成大西瓜游戏.并支持任意大小布局,你想玩多大面积,就拖多大面积,只要面积够大,认真玩下去,合100个大西瓜都可以.哈哈~~~
1.游戏介...[2021/5/31]
有关C++中函数的查漏补缺
函数
函数基础
除了函数名,函数指针也可以使用运算符()运行函数
函数的类型指的是 ( 返回类型 + 形参类型 )
存在于语句块中的对象叫自动对象
在函数里面的对象叫局部对象,定义时不给初值就执行默认初始化(内置类型其值是未定义的,使用会报错,不用会警告)
局部对象定义时加个static就成局部...[2021/5/31]
动态类型转换dynamic_cast
C++Primer第十九章的动态类型转换部分讲的不是很清楚,于是自己查cpp的官方手册总结一下。
dynamic_cast < new-type > ( expre ion )
动态类型转换是可以安全的在继承体系将指针和引用进行向上、向下和横向...[2021/5/24]
我的改错日常----指针的使用
指针使用守则以及建议
守则1:每一个指针调用前都要有所指向的空间(即地址);
守则2:要修改指针时需要传入更高一级指针;
建议:不要使用指针。
法则及真理详解
守则1:每一个指针调用前都要有所指向的空间(即地址);
当你新建一个指针的时候,都要记住需要为其分配空间,最常见使用malloc...[2021/5/24]
C++学习笔记之基础语法 - time-flies
目录基础语法switch和if区别枚举定义及作用域结构体数据耐齐--缺省对齐原则函数重载overload与C++Name Mangling指向函数的指针与返回指针的函数
基础语法
switch和if区别
先看一下switch和if汇编代码的区别:
int a = 3;
00007FF6A...[2021/5/24]
C++学习笔记之指针引用 - time-flies
目录指针指针定义左值与右值指针数组与数组指针const与指针指针的指针NULL指针内存泄漏(Memory Leak)问题智能指针引用
指针
指针定义
指针定义的基本形式:指针本身就是一个变量,其符合变量定义的基本形式,它存储的是值的地址。对类型T,T是“到T的指针”类型,一个类型为T的变量能...[2021/5/24]
从effective C++中窥探C++11特性
这几天在看effective C++3rd,这本书算是比较经典的一本入门C++的书了。虽然年代比较久远书中讲的好多模式已经被的新特性取代了,但是从这些旧的模式中可以了解到一些C++新特性设计的初衷,也算是窥探到了C++发展的一角吧。
所以在此记录一下学习过程中那些被C++11新...[2021/5/24]
C++学习笔记之编程思想 - time-flies
目录编程思想单例(Singleton)模式观察者(Observer)模式void*、NULL和nullptrC的类型转换C++的类型转换适配器(Adapter)模式泛型编程的思想模板函数模板类泛型递归
编程思想
单例(Singleton)模式
实现思路:
Singleton拥有一个私有构造...[2021/5/24]
C/C++戏法(1)
本篇序言
作为一个并不严谨的C++开发者,接触了C++这么多年后,将C++看作是“C with Cla ”还是我的主观看法(夸张了,但八九不离十),许多优秀特性都是一知半解或者完全不知道,更何况有些特性还是ISO C++ 03(甚至更老版本)里面的。所以又拿起了曾经在Udemy买的只看了几节课的...[2021/5/24]
现代C++实战30讲,资深架构师带你编写高性能代码
作为一门多范式的通用编程语言,它适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到
C++ 的身影。作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是 C++(高
性能运算) 。
你可能听说过 C++ 的另一种评价:复杂、难学、难用...[2021/5/24]
C++基于armadillo im2col的实现
col2im的实现,这是im2col的逆过程
最近学习CNN,需要用到im2col这个函数,无奈网上没有多少使用armadillo的例子,而且armadillo库中似乎也没有这个函数,因此自己写了。
im2col的原理网上一大把,我懒得写了。
1. field<某类>
fiel...[2021/5/24]
Qt 圆角按钮,面版自动布局
一、前言
在部分界面开发中,有时需要动态添加控件或按钮到面板中,在不需要时又需要删除该控件,故模仿视频开发中的设置屏蔽词,通过自己绘制的按钮与排布面板控件实现。
实现效果如下:
说明:
1、输入框可设置背景色、圆角角度、颜色高亮等
2、采用圆角输入框输入字符...[2021/5/24]
24.Qt Quick QML-Canvas和Context2D详解
1.Canvas介绍 Canvas是一个允许绘制直线和曲线、简单和复杂的形状、图形和引用的图形图像。它还可以添加文本、颜色、阴影、渐变和图案,并执行低级别像素操作。Canvas输出可以另存为图像文件或序列化到URL。 例如,以下代码创建一个Canvas项目,该项目具有高度为100像素、宽度为20...[2021/5/24]
PAT乙级 1014 福尔摩斯的约会 (20 分)
1014 福尔摩斯的约会 (20 分)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会...[2021/5/24]
C++中NULL与nullptr的区别对比C++中NULL与nullptr的区别对比
前言
在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。
一、C程序中的NULL
...[2021/5/17]
C++跳表项目源码分析
什么是跳表skiplist
一种基于链表list改造的数据结构,以空间换时间的方式加速链表的搜索。
具体定义这里不赘述,具体可看传送门:漫画小灰之跳表
本文主要赏析github上一个跳表项目的实现
传送门:一个使用C++编程实现的基于跳表的轻量级键值型数据库
项目中跳表实现都在一个头文件...[2021/5/17]
c++学习笔记
内存泄漏
内存泄漏(Memory Leak)是指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。
A memory leak is a particular ty...[2021/5/17]
正则表达式小结
学习完C++Primer第五版第十七章第三小节正则表达式后小结一下:
1、regex的匹配机制 不能直接确定输入序列中总共有多少表达式正确匹配给定的正则表达式。
注意:不要误认为match的成员函数size()返回的是匹配值的数量,匹配成功时size返回的...[2021/5/17]
使用constexpr时遇到的小坑
最近在使用constexpr的时候无意中踩了个小坑。
下面给个小示例:
#include <iostream>
constexpr int n = 10;
constexpr char *msg = "Hello, world!";
int main()
{
for ...[2021/5/17]
拷贝构造器(深拷贝与浅拷贝)
一. 概述
复习巩固学习过的知识C++拷贝构造器。
环境:Centos7 64位,g++ 4.8.5
二. 代码与验证
1. 构造与拷贝构造
拷贝构造器(copy constructor)的地位与构造器(constructor)的地位是一样的,都是由无到有的创建过程。拷...[2021/5/10]
c++中explicit与mutable关键字的深入探究
今天说一说c++里面的两个关键字explicit和mutable。
1. explicit关键字
在写c++标准输入输出相关文章,查看iostream实现代码的时候,经常看到构造函数前面带有explicit关键字,那么它到底有什么作用呢。
explicit用来防止由构造函数定义的隐式...[2021/5/10]
c11 move 和 forward
c++11 : move forward 个人理解
右值引用(rvale references)和全局引用(universal references)的区别:
T&&”有两种意思:
代表的是右值引用(rvalue reference)。就是他绑定到一个右值上,代表对象的移动来源...[2021/5/10]
C++基于文件流和armadillo读取mnist
发现网上大把都是用python读取mnist的,用C++大都是用opencv读取的,但我不怎么用opencv,因此自己摸索了个使用文件流读取mnist的方法,armadillo仅作为储存矩阵的一种方式。
1. mnist文件
首先避坑,这些文件要解压。
官网截图可知,文件头很简单,只有若...[2021/5/10]
C++实现二分法求方程近似解
二分法是一种求解方程近似根的方法。对于一个函数 f(x)f(x),使用二分法求 f(x)f(x) 近似解的时候,我们先设定一个迭代区间(在这个题目上,我们之后给出了的两个初值决定的区间 [-20,20]),区间两端自变量 x 的值对应的&...[2021/5/10]
C++ STL vector的模拟实现C++ STL vector的模拟实现
1. vector的介绍和使用
vector是表示可变大小数组的序列容器。
就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处...[2021/5/7]
C++中对象&类的深入理解C++中对象&类的深入理解
什么是对象
任何事物都是一个对象, 也就是传说中的万物皆为对象.
对象的组成:
数据: 描述对象的属性
函数: 描述对象的行为, 根据外界的信息进行相应操作的代码
具有相同的属性和行为的对象抽象为类 (cla )
类是对象的抽象
对象...[2021/5/7]
C++ vector容器 find erase的使用操作:查找并删除指定元素
概念:容器、迭代器、算法
STL包括容器、迭代器和算法:
容器
用于管理一些相关的数据类型。每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求。容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值。
迭代器
用于遍历一个数据集中的每个元素。这些数据集可能是容器...[2021/5/6]
总结了24个C++的大坑,你能躲过几个
前段时间给部门做了个C++专题的分享,主要分享了C++语言里一些常见的坑,在这里也分享给大家。
以下是本文目录:
首先说下C++和C语言有什么区别?分享一个我在知乎上看见的回答:
C++ ≈ C with cla es, C with STL
C:面向机器编程...[2021/5/6]
【C/C++】面相对象开发之封装
封装继承多态是面向对象程序开发的基础概念。是实现面向对象的基本要素。
封装
程序开发,最核心价值,是数据。
程序其实是读取数据,操作数据,保存数据等一系列操作。
那么经过良好组织过的数据,将使编程事半功倍。
高内聚,低耦合
说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。
这并不是...[2021/5/6]
Exercise_7_27的学习
最近在看《C++ primer》,做到了练习7.27的时候,遇到了一些问题,在此记录。
1 先贴代码
1.1 .h代码
#include <cstdlib> &nb...[2021/5/6]
《C++ primer》学习笔记整理
简介
本笔记目前已包含《C++ Primer》中的绝大部分内容,但尚有部分小节有所缺漏,如 19.1、19.2 节的笔记尚未整理,会持续更新。
本项目中的学习笔记是在学完一章内容后,对其要点进行提炼后记下的笔记。笔记内容包含我学习时认为需要记忆的知识点。 ...[2021/5/6]
基本并查集【LEMONni】
首先,我们可以听一个故事。
有许多的村庄,其实都是由一个人发展出来的,有些时候,我们想要知道两个人是不是一个村庄的,只要知道他的爸爸是哪个村庄的,这就是查找。
有一天,一个村庄的长老对另一个村庄的长老说:“欸,你们这个村庄就和我们一起吧!”但是我们知道,如果一个村子有两位长老肯定是会出问题的...[2021/5/6]
调用运算符与可调用对象
1 调用运算符
当用点运算符访问一个成员函数时,我们是想调用该函数。我们使用调用运算符( () )来调用一个函数。调用运算符是一对圆括号,里面放置实参列表(可能为空)。
item1.isbn()
2 可调用对象
对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用...[2021/5/6]
动态内存:delete作用于空指针
在学习《C++primer 第五版》(中文版)中第12章动态内存与智能指针的时候遇到了一个习题,练习12.13:
练习 12.13:如果执行下面的代码,会发生什么?
auto sp=make_shared<int>();
...[2021/5/6]
拷贝构造函数第一个参数最好使用const
拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些“不知道”的情况下对常量对象调用拷贝构造函数。
来看一个例子
cla HasPtr{
public:
HasPtr...[2021/5/6]
C++雾中风景17:模板的非推断语境与std::type_identity
乍一看这个标题很玄乎,但是其实这只是涉及一个很简单的CPP的模板推导的知识点。
笔者近期进行CPP开发工作时,在编译时遇到了如下的模板类型的推断错误:note: candidate template ignored: deduced conflicting types for paramet...[2021/5/6]
【C/C++】面相对象开发之封装
封装继承多态是面向对象程序开发的基础概念。是实现面向对象的基本要素。
封装
程序开发,最核心价值,是数据。
程序其实是读取数据,操作数据,保存数据等一系列操作。
那么经过良好组织过的数据,将使编程事半功倍。
高内聚,低耦合
说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。
这并不是...[2021/4/19]
类的构造函数学习笔记:显式调用构造函数生成临时对象,拷贝构造函数
在学习《C++primer 第五版》(中文版)中第七章类的时候遇到了一个有意思的习题,原题如下:
练习7.43:假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认的构造函数。定义类C,C有一个Nodefault类型成员,定义C的默认构造函数
本题的答...[2021/4/19]
C 动态内存分配
0x01为什么存在动态内存分配
我们已经掌握的内存开辟方式有:
int val=20; 在栈空间上开辟四个字节
char arr[10]={0}; 在栈空间上开辟10个字节连续空间
但是上述的开辟空间方式有2个特点
1.空间开辟大小固定
2.数组在声明的时候,必须指定数组长度,它所需...[2021/4/19]
并查集
在一张图中,我们常常会遇到判断两个点是否在同一个连通块上,此时,我们若采用朴素而低效的dfs的方法,就有超时的危险,于是我们引入了一种更加实用的算法——并查集。
父节点表示法
首先,我们来了解一个树的存储方法:父节点表示法。
因为每个节点只有唯一父节点,于是我们用 parent[i] 来表示...[2021/4/19]
(文字版)Qt信号槽源码剖析(三)
大家好,我是IT文艺男,来自一线大厂的一线程序员
上节视频给大家讲解了Qt信号槽的Qt宏展开推导;今天接着深入分析,进入Qt信号槽源码剖析系列的第三节视频。
Qt信号槽宏推导归纳
#define signals public
#define slots
#define Q_OBJEC...[2021/4/19]
C++ 实现一个复数类的实例代码
要求
实现⼀个复数类 Complex 。 Complex 类包括两个 double 类型的成员 real 和 image ,分别表示复数的实部和虚部。
对 Complex 类,重载其流提取、流插⼊运算符,以及加减乘除四则运算运算符。
重载流提取运算符 >...[2021/4/19]
Qt信号槽源码剖析(二)
大家好,我是IT文艺男,来自一线大厂的一线程序员
上节视频给大家讲解了Qt信号槽的基本概念、元对象编译器、示例代码以及Qt宏;今天接着深入分析,进入Qt信号槽源码剖析系列的第二节视频。
Qt信号槽的宏使用
宏定义在qobjectdefs.h文件中(位于QtCore目录)
signals
#...[2021/4/13]
如何用C++制作LeetCode刷题小技巧-错题记录本
一 . 刷题小技巧
1,c++中的for(auto a:b)用法
for(auto a:b)中b为一个容器,效果是利用a遍历并获得b容器中的每一个值,但是a无法影响到b容器中的元素。
for(auto &a:b)中加了引用符号,可以对容器中的内容进行赋值,即可通过对a赋...[2021/4/12]
c++ vector模拟实现的全过程
一、vector是什么?
vector是表示可变大小数组的序列容器,它也采用连续存储空间来存储元素,因此可以采用下标对vector的元素进行访问,它的大小是动态改变的,vector使用动态分配数组来存储它的元素;
二、容器特性
1.顺序序列
顺序容器中的元素按照严格的线性顺序排...[2021/4/12]
C++深拷贝与浅拷贝的区别及应用
浅拷贝
只是对指针的拷贝,拷贝后两个指针指向同一个内存空间;
深拷贝
对指针指向的内容进行拷贝(重新分配内存),经深拷贝后的指针是指向不同地址的指针;
因此浅拷贝释放内存的时候很容易出现因为释放两个指针而内存出错。
浅拷贝(释放时,因为多次释放出错)
只拷贝...[2021/4/12]
c/c++小游戏源代码
翻到开学之初写的一些小游戏,陆续给大家发出来,也便提高新手们的编程兴趣。(已详细注释)
几个对应头文件需要注意一下,但不必太过恐慌,因为,,,很多,用的时候找需要的即可
(在Dev,codeblocks,VC上都能运行)
#include<stdio.h>
#inc...[2021/4/12]
c/c++编程笔记:布尔类型(bool)分析
布尔类型(bool)
布尔类型(bool)是C++新增的一种基本数据类型。它的名称来源于英国数学家George Boole,是他开发了逻辑律的数学表示法。
名称应用环境类型长度取值
bool标准的C++布尔型1个字节false和true(0和1的区别)
C++中的 bool 的取值只有 t...[2021/4/12]
QT 遍历UI控件到XML和从XML加载值到UI控件
一.实例源码介绍: 在用QT时,我们有这样的需求,关闭窗口需要将UI上所有控件的值保存到XML文件里或在UI界面加载并显示时,从XML文件里加载数据到UI控件上。本源码实现了自动将UI上所有控件的值保存到XML文件里和自动从XML文件里加载数据到UI控件上。具体的,可以下载源代码学习,希望可以给...[2021/4/12]
高仿花生壳客户端程序(qt)
高仿花生壳客户端程序
前言
设计的初想是在现场调试的时候,使用花生壳进行远程时,感觉类似花生壳这种程序的模板较为普遍,当时和同事打趣说一个星期内可以做出一摸一样的界面,回到公司正好赶上离职,有时间想做一些东西,看到花生壳程序程序,瞬间想拿他用qt练手,于是三天时间仿制了该界面。
原生界面
...[2021/4/12]