C++ 获取数组大小、多维数组操作详解
获取数组的大小
要获取数组的大小,可以使用 sizeof() 运算符:
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);
结果:
20
为什么结果显示为 20 而不是 5,当数组...[2024/4/11]
Qt加Opencv实现 梯度矫正 功能Qt加Opencv实现 梯度矫正 功能
废话:
有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做 梯度矫正,需要用到的技术是 Opencv 的 透视变换。
这个只是一个简单的演示demo,如果完善一下,比如物品检测,可以应用更多的场景,比如常见的:文件、资料上传,软管摄像头的应用等,怎么说也...[2024/4/10]
C++ Break、Continue 和 数组操作详解
C++ Break 和 Continue
break 语句还可以用来跳出循环。
在以下示例中,当 i 等于 4 时跳出循环:
for (int i = 0; i < 10; i++) {
if (i == 4) {
break;
}
cout << i ...[2024/4/8]
std::format 如何实现编译期格式检查
C++ 20 的 std::format 是一个很神奇、很实用的工具,最神奇的地方在于它能在编译期检查字符串的格式是否正确,而且不需要什么特殊的使用方法,只需要像使用普通函数那样传参即可。
#include <format>
int a = 1;
std::string s1 ...[2024/4/8]
C++虚继承原理与类布局分析
C++虚继承原理与类布局分析
引言
在开始深入了解虚继承之前,我们先要明白C++引入虚继承的目的。C++有别于其他OOP语言最明显的特性就是类的多继承,而菱形继承结构则是多继承中最令人头疼的情况。
我们都知道,当派生类继承基类时,派生类内部会保存一份基类数据的副本。在D->B|C, B|...[2024/4/3]
编辑距离算法
1.题目
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。
你可以对一个单词进行如下三种操作:
删除一个字符
替换一个字符
插入一...[2024/3/26]
图解二维完全背包问题——降维打击
例题
例题:518. 零钱兑换 II
概述:
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。
请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。
假设每一种面额的硬币有无限个。
题目数据保证结果符合 3...[2024/3/25]
hackme 【攻防世界】Reverse
题目:
丢到PE里, 无壳,64bit
丢到IDA里,shift+F12,查看字符串,找到一个很可疑的字符串
跟进去看看,找到目标函数,我另外搜索了一下,没有mian函数,sub_400F8E应该就是解题的关键函数
有部分变量我修改的名字,为了方便理解
...[2024/3/25]
Dll堆栈问题(Dll的静态变量与全局变量、vs的MT与MD)
问题引入: dll有一个导出函数,函数参数是string&,string在函数内部被=赋值。在exe动态加载此dll,调用此导出函数后,会崩溃。
原因: 如果任何STL类的实现中使用了静态变量(我们无从得知但map、string存在此问题),且编译dll时,vc的运行库设置为MT或MT...[2024/3/22]
C++中虚表是什么
虚函数表,以及虚函数指针是实现多态性(Polymorphism)的关键机制。多态性允许我们通过基类的指针或引用来调用派生类的函数
定义
虚函数(Virtual Function)
定义:类中使用virtual 关键字修饰的函数 叫做虚函数
语法:
cla Base {
p...[2024/3/19]
C++ Qt开发:QTcpSocket网络通信组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。
QTcpSocket和QTcpServer是...[2024/3/18]
C++ Qt开发:运用QThread多线程组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QThread组件实现多线程功能。
多线程技术在程序开发中尤为常用,Qt框架中提供了QThread库...[2024/3/7]
C++中的不规则二维数组
技术背景
最近刚学习C++的一些编程技巧,对于一些相对比较陌生的问题,只能采取一些简单粗暴的方案来实现。就比如说,我们可以在Python中定义一个[[0,0,0],[1,2],[1,1,1],[3]]这样的不规则的二维数组(list)。那么如果我们想在C++中实现一个类似的数据结构,应该怎么去设...[2024/3/7]
在嵌入式设备中用多项式快速计算三角函数和方根
惯性传感器的倾角计算要用到三角函数.
在 MCS-51, Cortex M0, M3 之类的芯片上编程时, 能使用的资源是非常有限, 通常只有两位数KB的Flash, 个位数KB的RAM. 如果要使用三角函数和开方就要引入 math.h, 会消耗掉10KB以上的Flash空间. 在很多情况下受...[2024/3/4]
在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能
My-PaddleOCR
介绍
如何在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能。
本项目的所有源码:gitee: paddleocr
目前,官方提供使用 PaddleOcr 的方案有:
在 Python 项目中,调用 paddlepaddle + p...[2024/3/1]
C++ GDAL用CreateCopy()新建栅格并修改波段的个数
本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。
在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。其中,CreateCopy()函数需要基于一个已有的栅格图像文件作为模板,将模板文...[2024/2/26]
序列化协议:Protobuf入门
偶然在网上清华大学电子系科协软件部2023暑期培训的内容中发现了这个东西,后面随着了解发现以后学习有关项目时会用到,便写个随笔记录一下这次学习的经历。作为一种序列化协议,与使用文本方式存储的xml、json不同,protobuf使用的是二进制格式进行存储,有利于在类似分布式LInux性能分析监...[2024/2/19]
C++——编译和链接原理笔记
我们在学习和开发C++程序中,理解编译和链接的原理至关重要。下面将学习一下C++程序是如何从源代码转换为可执行文件的过程,并结合示例代码进行说明。也是为了解开自己在刚学习C++的时候,编译时间长的疑惑。
为了不让自己的学习之路这么枯燥,我按照一个正常的开发流程梳理一下。这样不但学习了如...[2024/2/18]
C++——数据类型笔记
在C++编程中,了解各类数据类型也是至关重要的。下面我会总结一下C++中的数据类型,包括基本类型,符合类型和自定义类型。方便自己整理和理解。
1,基本类型
C++中的基本类型是构建其他数据类型的基础,常见的基础类型包括整型,浮点型,字符型和布尔型:
整型:用于表示整数,如 int、s...[2024/2/18]
CLion搭建Qt开发环境,并解决目录重构问题(最新版)
序言
Qt版本不断更新,QtCreator也不断更新。在Qt4和Qt5时代,我一直认为开发Qt最好的IDE就是自带的QtCreator,可是时至今日,到了Qt6时代,QtCreator已经都12.0.1版本了,不仅没变的更好用,反而变得更难用了。一方面可能是我被JetBrains全家桶和各种AI...[2024/1/29]
AI五子棋 C++ 借助图形库raylib和raygui 设计模式思考过程和实现思路总结
转载请注明 原文链接 :https: www.cnblogs.com/Multya/p/17988499
repo: https: github.com/Satar07/AI_GoBang_Public 欢迎来star
程序外观
主界面
游戏界面
胜利界面
操作方式
鼠标点按(符合...[2024/1/26]
【OpenCV】在 Mac OS 上使用 EmguCV
前言
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。 Emgu CV是OpenCV图像处理库的跨平台 .Net 包装器。允...[2024/1/5]
C++ 动态库热加载
C++ 动态库热加载
本文参考自 project-based-learning 中的 Build a Live Code-reloader Library for C++,主要内容都来自于其中,但是对代码进行了一点修改,并且改用 CMake 进行构建。
文章整体比较基础,适合初学者,通过本文可...[2024/1/5]
也谈编译期操作
??说起模板元编程,估计不少人的第一反应都是充斥着各种递归的奇技淫巧,没错,这次我们就来对模板元这种屠龙之术进行初步窥探,看看能玩出什么花样出来。
小试牛刀
template <typename _Tp, typename... args>
struct get_si...[2024/1/5]
C++ Qt开发:SqlTableModel映射组件应用
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlTableModule组件的常用方法及灵活运用。
在多数情况下我们需要使用SQL的方法来维护数据库,但...[2023/12/29]
auto{x}与auto(x)---一位中国小伙为cppreference作出的贡献
??C++作为一门静态类型语言,是需要程序员声明变量类型的。然而来到了C++11,auto的诞生使得变量声明变得及为方便,尤其是对于比较长的模板类型,auto一定程度上为代码编写者减轻了负担。到了C++23,突然来了个新特性:auto{x}/auto(x),这又是个什么东西,它的motivati...[2023/12/29]
C++ Qt开发:TableView与TreeView组件联动
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TableView与TreeView组件联动的常用方法及灵活运用。
本章我们继续实现表格的联动效果,当读者点...[2023/12/27]
C++ 核心指南 —— 性能
C++ 核心指南 —— 性能
阅读建议:先阅读 《性能优化的一般策略及方法》
截至目前,C++ Core Guidelines 中关于性能优化的建议共有 18 条,而其中很大一部分是告诫你,不要轻易优化!
非必要,不优化
Per.1: 不要无故优化
Per.2: 不要过早优化
Per.3...[2023/12/27]
C++ Qt开发:QSqlDatabase数据库组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSqlDatabase数据库模块的常用方法及灵活运用。
Qt SQL模块是Qt框架的一部分,它提供了一组类...[2023/12/27]
C++ Qt开发:Charts绘制各类图表详解
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TreeWidget与QCharts的常用方法及灵活运用。
在之前的文章中笔者介绍了如何使用QCharts模...[2023/12/26]
C++ Qt开发:StandardItemModel数据模型组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍StandardItemModel数据模型组件的常用方法及灵活运用。
QStandardItemModel ...[2023/12/22]
C++ Qt开发:StatusBar底部状态栏组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStatusBar底部状态栏组件的常用方法及灵活运用。
QStatusBar 是 Qt 中用于在主窗口底部...[2023/12/21]
C++ Qt开发:TabWidget实现多窗体功能
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidget标签组件的常用方法及灵活运用。
QTabWidget 是Qt中用于实现标签页(tabbed...[2023/12/21]
拓展了个新业务枚举类型,资损了
分享是最有效的学习方式。
案例背景
翻车了,为了cover线上一个业务场景,小猫新增了一个新的枚举类型,盲目自信就没有测试发生产了,由于是底层服务,上层调用导致计算逻辑有误,造成资损。老板很生气,后果很严重。
产品提出了一个新的业务场景,新增一种套餐费用的计算方式,由于业务比较着急,小猫...[2023/12/18]
JOISC2020题解JOISC2020题解
\(\text{By DaiRuiChen007}\)
Contest Link
A. Building 4
Problem Link
题目大意
给 \(2n\) 个数对 \((a_i,b_i)\),构造一个非降序列 \(c_i\) 满足 \(\forall 1\le i\...[2023/12/18]
C++ Qt开发:TreeWidget 树形选择组件C++ Qt开发:TreeWidget 树形选择组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TreeWidget树形选择组件的常用方法及灵活运用。
QTreeWidget 是 Qt 中的树形控件组件,...[2023/12/18]
C++ Qt开发:ComboBox下拉组合框组件C++ Qt开发:ComboBox下拉组合框组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ComboBox下拉组合框组件的常用方法及灵活运用。
在Qt中,ComboBox(组合框)是一种常用的用户界...[2023/12/15]
C++ Qt开发:PushButton按钮组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QPushButton按钮组件的常用方法及灵活运用。
QPushButton 是 Qt 框架中用于创建按钮的...[2023/12/13]
C++ Qt开发:SpinBox数值微调框组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSpinBox精度数值组件的常用方法及灵活运用。
QSpinBox是Qt框架中的一个部件(Widget),...[2023/12/13]
使用C++和QT实现Log自定义日志系统使用C++和QT实现Log自定义日志系统
MyLog
说明
使用QT的qInstallMe ageHandler函数结合qDebug,qInfo实现自定义的日志系统
输出日志到文件和控制台
自动检测日志文件大小
自动更新日志文件修改日期
自动备份
自动删除一个月前的日志文件
支持多线程程序
支持扩展,可输出日志到数据库,网络,或服...[2023/12/13]
C++ Qt开发:RadioButton单选框分组组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QRadioButton单选框组件以及与之交互的QButtonGroup类的常用方法及灵活运用。
QRadi...[2023/12/13]
C++ Qt开发:字符串QString容器
在Qt框架中,QString 是一个强大而灵活的字符串容器,专为处理 Unicode 字符而设计。它提供了许多方便的方法来操作和处理字符串,使得在跨平台开发中能够轻松地进行文本操作。QString 是 Qt 开发中不可或缺的一部分,它的灵活性和强大的功能使其成为处理文本和字符串操作的理想选择。本...[2023/12/11]
C++ Qt开发:Qt的安装与配置
Qt是一种C++编程框架,用于构建图形用户界面(GUI)应用程序和嵌入式系统。Qt由Qt公司(前身为Nokia)开发,提供了一套跨平台的工具和类库,使开发者能够轻松地创建高效、美观、可扩展的应用程序。其被广泛用于开发桌面应用程序、嵌入式系统、移动应用程序等。无论是初学者还是经验丰富的开发者,Qt...[2023/12/11]
C++ Qt开发:如何使用信号与槽
在Qt中,信号与槽(Signal and Slot)是一种用于对象之间通信的机制。是Qt框架引以为傲的一项机制,它带来了许多优势,使得Qt成为一个强大且灵活的开发框架之一。信号与槽的关联通过QObject::connect函数完成。这样的机制使得对象能够以一种灵活而松散耦合的方式进行通信,使得组...[2023/12/11]
ACPM高效C++组件管理让音视频终端SDK性能更好、稳定性更高
本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox技术架构篇,重点从 ACPM介绍、技术架构以及高效管理等方面,介绍如何通过MediaBox ACPM的高效组件管理,来提升...[2023/12/8]
C++20语言核心特性的变化
using for Enumeration Values
??对比一下C++20前后的区别:
enum cla State {
open,
progre ,
done = 9
};
Before C++20
void print(State s) {
sw...[2023/12/1]
你知道C++如何在一个函数内返回不同类型吗?
C++ 中要在一个函数内返回不同类型的值,你可以使用 C++17 引入的 std::variant 或 std::any,或者使用模板和多态。下面将分别介绍这些方法。
方法一:使用 std::variant
std::variant 允许你在一个函数内返回不同类型的值,但它要求所有可能的返回类...[2023/12/1]
C/C++ Zlib库封装MyZip压缩类C/C++ Zlib库封装MyZip压缩类
Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-Loup Gailly和Mark Adler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是基于DEFLATE算法,这是一种无损数据压缩算法,...[2023/11/29]
C++跨DLL内存所有权问题探幽(二)CRT中MT和MD混用导致的堆损坏
0xC0000374: 堆已损坏。 (参数: 0x00007FFA1E9787F0)。
_Mem 是 nullptr
我在开发的过程中有遇到上面两个东西的bug,百思不得其解,最后才发现这个和两个DLL中的MT和 MD选项有关系。
具体情境时:我在一个MT编译的DLL A中引用了一个MD编...[2023/11/22]
C/C++ 运用WMI接口查询系统信息C/C++ 运用WMI接口查询系统信息
Windows Management Instrumentation(WMI)是一种用于管理和监视Windows操作系统的框架。它为开发人员、系统管理员和自动化工具提供了一种标准的接口,通过这个接口,可以获取有关计算机系统硬件、操作系统和应用程序的信息,以及对系统进行管理和控制的能力。
WMI...[2023/11/20]