P.2简易计算器
一、项目简介
一个基于 C++ 的简易控制台计算器,支持多种基础运算。
二、功能说明
支持加、减、乘、除、取模运算
支持与、或、非、异或等位运算
支持左移、右移操作
输入错误表达式时会给出报错提示
三、运行环境
兼容 C++14 及以上标准
Windows 平台可直接运行提供的 .exe 文件
运行后会自动暂停,方便查看结果
四 ...
C++/WinRT 入门与 Visual Studio 配置
最近在做 ESP32-C3 与 Windows 端 BLE 通信时,我顺手把 Windows 端切到了 C++/WinRT。
这篇文章记录一个最小可运行路径:从 Visual Studio 配置开始,到成功调用 WinRT 的 的函数并启动。
本文重点讲清楚这几件事:
VS 里怎么配置 C++/WinRT
代码里为什么要写 #pragma comment(lib, "windowsapp.lib") 和 #pragma comment ...
poj1845 sumdiv 题解
poj1845 sumdiv 题解
Emmm...并非题解
其实是边想边写现编的
先审题:
考虑两个自然数 A 和 B。令 S 为$ A^B $的所有自然因子之和。确定 S 除以 9901 的余数.
eg. \(2^3 = 8\)。 8 的自然因子是:1、2、4、8。它们的和是 15。 15 除以 9901 的余数是 15(输出值)。
啊,好简洁的题面像我的大脑一样!
可以肯定的,\(A\) ...
初识C语言的常见概念
1.C语言是什么?
一种用于人类与计算机交流的计算机语言
2.C语言的历史和辉煌
C语言最初是作为Unix系统的开发工具而发明出来,其先前有汇编语言,B语言;
1988年,美国国家标准协会(ANSI)正式将C语言标准化,直至今日,C语言仍然在广泛的使用。
3.编译和链接
C语言是一门编译型的语言,其源代码都是文本文件,本身无法执行 ...
工业机器人都在做驱控一体,但很多企业卡在软件开发这一关
这两年,在工业机器人、协作机器人、AGV/AMR、自动化设备行业里,有一个非常明显的趋势:越来越多企业开始做驱控一体。很多公司的新产品架构里都会提到:
驱控一体控制器
一体化关节
一体化控制系统
控制与驱动融合架构
驱控一体几乎已经成为新一代机器人控制系统的一个方向。但我们在和一些机器人公司、自动化设 ...
Qt 技巧笔记(十四):QTableWidget 表格组件
Qt 技巧笔记(十四):QTableWidget 表格组件
Qt 是一个跨平台C++图形界面平台,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TableWidget表格组件的常用方法及灵活运用。其核心特点:
内置数据存储模型(QTableW ...
P1993 小 K 的农场
P1993 小 K 的农场
题意
第一行两个整数 \(n\) 和 \(m\) ,分别表示农场数目和小K记忆中的信息数目。
每行先输入一个数 \(opt\) ,可为1,2,3。
每个数字代表一种条件,共3类条件:
\(opt = 1\) : 农场 a 比农场 b 至少多种植了 c 个单位的作物 ;
\(opt = 2\) : 农场 a 比农场 b 至多多种植了 c 个单位的作物 ;
\(opt = ...
ATCODER ABC 450 C题解
ATCODER ABC 450 C
[Atcoder ABC 450 C](C - Puddles)
题意概述:
二维字符数组中,找到联通的.的组合并且处在内部,没有点在最外层
难点:
因为想不到或者不知道这道题的算法是什么,我想枚举模拟,但是在枚举模拟的过程中,我发现,我模拟从一个串的开始到串的末尾,这个过程很难模拟出来,所以暴力做法也写不出来,最后,看官方题解 ...
密码学系列之C/Python编程实现DES算法
DES
任务描述
编程实现DES的加密和解密算法,对明文“0x0123456789ABCDEF”进行加密,采用密钥“0x133457799BBCDFF1”,输出每一轮的加密结果和轮密钥,并对密文进行解密,输出解密后的结果。
DES算法详细介绍我就不展开了,但是简略的过程如上。同样,有需要的读者适当考虑读全英文文献[1],或者利用各个社区进行系统的学 ...
密码学系列之C/Python编程实现AES算法
AES
任务描述
编程实AES的加密和解密算法,对明文“0x3243f6a8885a308d313198a2e0370734”进行加密,采用密钥“0x2b7e151628aed2a6abf7158809cf4f3c”, 输出每一轮的加密结果和轮密钥,并对密文进行解密,输出解密后的结果。
AES通常细分为AES-128、AES-192、AES-256。这里编程的目的主要是为了实现AES-128。
关于AES算法 ...
Qt表格入门(优化篇)
摘要:
为提升大数据量下的渲染性能,本文通过 QStyledItemDelegate 直接绘制单选按钮(使用 QStyleOptionButton 和 drawControl),并在 editorEvent 中处理点击逻辑,避免创建真实控件,显著优化了加载与显示效率。
关键词:
QStyledItemDelegate、QStyleOptionButton、drawControl、editorEvent、优化 ...
Qt正则表达式同时匹配多个关键词
摘要:
这篇博客实现了在Qt环境中利用正则表达式匹配多个关键字的功能。
关键词:
Qt、正则表达式、搜索、分割、同时搜索、与、高级搜索、QRegularExpression
需求描述:
利用正则表达式实现多个关键词的搜索功能;
多个关键词之间是“与”的关系;
多个关键词之间用“-”符号连接。
版本:Qt5.14.2
...
Lambda表达式
用法
C++11加入了Lambda表达式,这是现代编程语言的一个特点,lambda表达式的优点:
声明式的编程风格:就地匿名定义目标函数或者函数对象,不需要额外写一个声明函数或者函数对象。类似匿名内部类。
简洁:避免了代码膨胀和功能分散,让开发更加高效。
在需要的时间和地点实现功能闭包,是程序更加灵活。
lambda表达式定 ...
指针空置类型-nullptr
先看一段代码:
#include <iostream>
using namespace std;
void func(char* p) {
cout << "void func(char* p)" << endl;
cout << p << endl;
}
void func(int p) {
cout << "void func(int p)" << endl;;
cout << p << endl;
}
int main() {
//int
func(10);
//char*
func(NULL); //这里我希望程序调用func ...
Keil MDK(uVision5)完全指导手册(个人总结,篇幅有限)
目录
环境搭建与安装
基础入门:第一个项目
项目管理与配置
调试技术详解
高级应用与优化
常见问题与解决方案
一、环境搭建与安装
1.1 系统要求
操作系统:Windows 7/8/10/11(64位推荐)
处理器:Intel Pentium 4 或更高
内存:最低2GB,推荐4GB或以上
硬盘空间:至少2GB可用空间
1.2 软件安装步骤
步骤1:下载安装包 ...
基于范围的for循环
c++11基于范围的for循环,语法:
for (Type declaration : expression)
{
// 循环体
}
在上面的语法格式中Type declaration表示遍历声明,在遍历过程中,当前被遍历导的元素会被存储到声明的变量declaration中。expression是要遍历的对象,它可以是表达式、容器、数组、初始化列表等。
如下代码:
#include <iostream ...
使用 C++ 模拟 ShaderLanguage 的 swizzle
swizzle 语法
经常编写着色器的同学应该对 swizzle(重排)语法非常熟悉,方便又灵活,可以说是用过一次便回味无穷。
代码
vec4 color = vec4(1.0, 0.5, 0.0, 1.0);
vec3 rgb = color.rgb; // { 1.0, 0.5, 0.0 }
vec2 xy = color.xy; // { 1.0, 0.5 }
vec4 bgra = color.bgra; // { 0.0, 0.5, 1.0, ...
自动类型推导
c++11中添加了自动推导变量的类型auto,以及decltype表示函数的返回值。
auto
auto可以像别的语言一样自动推导出变量的实际类型。
在实际中,auto像是一个”占位符“,使用auto声明的变量必须要进行初始化,以让编译器推导出它的实际类型,在编译时将auto换成真正的类型。
语法:
auto 变量名 = 变量值
实际使用例子:
#in ...
P4168 [Violet] 蒲公英 (离散化+分块 在线查询区间众数)
P4168 [Violet] 蒲公英
离散化+分块 在线查询区间众数
由于a_i范围是1e9的,记录a_i出现的次数不方便直接用数组记录,但是一共有n个数,我们就可以把它们排序去重,把a_i映射为在n个数中排第几,这样映射后的值域就小于n了,我们就能直接用数组记录了,这就是离散化
将长度为 n 的数组分块,每块长度为 B=sqrt(n)
比如[0,B), ...
[Windows/C] libzip 的编译和使用
本文参考:
Windwos zlib 下载和编译
Windwos 编译 libzip
0. 准备工作
编译器:我使用的编译器是 gcc(MinGW),此时需将编译器目录下的 mingw32-make.exe 改名为 make.exe,方便使用。
你需要 CMake,可以在 https://cmake.org/download/ 下载。下载解压后在 bin 目录下找到 cmake-gui.exe,我们使用的是这个 GUI 程序 ...