logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++中对比pragma once和ifndef的使用区别

本文比较了C/C++中防止头文件重复包含的两种方式:#pragma once和#ifndef宏守卫。#pragma once简洁高效但非标准,依赖文件路径标识,兼容现代主流编译器;而#ifndef宏守卫符合标准,可移植性强但需手动管理唯一宏名。文章指出二者混用并无优势,推荐现代项目优先使用#pragma once,跨平台项目则选择宏守卫。编译效率上#pragma once略优,但都经过编译器优化。

#c++#开发语言
C++中extern使用避坑(实现数据隐藏与安全性、生命周期可控、并发友好)

在C++中直接使用extern暴露全局变量存在数据竞争和线程安全问题。文章提出两种改进方案: 封装访问函数:通过静态变量和互斥锁保护全局数据,提供安全访问接口; 单例模式:将相关全局状态封装为线程安全的单例类,确保全局唯一访问。 针对多线程环境下的数据竞争问题,文章对比了两种解决方案: 互斥锁适用于保护复杂逻辑; 原子操作在简单计数场景下性能更优。 最佳实践推荐使用封装方案替代直接extern全局

#c++
MySQL实现数据库分表(水平、垂直、分区表)—————附带详细操作

本文介绍了MySQL数据库分区的三种主要方式:水平分表、垂直分表和分区表。水平分表按行拆分数据到多个结构相同的表中,适用于单表数据量过大的场景;垂直分表按列拆分数据到不同结构的表中,解决表字段过多问题;分区表则是数据库内部实现的物理分区机制,对应用层透明。文章详细对比了三者的特点、适用场景及优缺点,并提供了具体操作示例,包括按哈希取模、时间范围的水平分表实现,按字段拆分的垂直分表方法,以及按年份范

文章图片
#数据库#mysql#oracle
C++设计原理——名称空间(使用、版本管理、别名、重载、嵌套、开放、对类的影响、与C语言的兼容)

C语言缺乏名称空间机制,导致全局名称容易冲突。常见解决方案包括使用宏定义添加前缀(如myprefix_f)或将全局实体封装到类中作为静态成员,但这会破坏封装性、改变初始化顺序并影响链接属性。C语言中可通过static关键字限制函数作用域到单个文件,避免跨文件冲突。C++引入namespace机制,允许将名称限定在特定空间内,通过A::String显式访问,或使用using声明/指令简化调用。相比C

#c++#c语言
Qt多界面创建的优化问题(main函数或主界面中创建?)—————附带详细方法

摘要: Qt多界面创建存在两种优化方法:方法一在main函数中集中创建所有界面,启动时内存占用高但切换无延迟;方法二在主界面中动态创建其他界面,内存占用低但首次切换有延迟。方法二采用模块化设计,通过Qt父子关系自动管理资源释放,具有更好的扩展性和维护性,适合复杂界面交互和资源受限场景。方法一适合界面简单且切换频繁的应用。实际选择需权衡内存占用、响应速度和代码可维护性,推荐优先采用方法二的按需加载机

#qt#架构
MySQL实现数据库分表(水平、垂直、分区表)—————附带详细操作

本文介绍了MySQL数据库分区的三种主要方式:水平分表、垂直分表和分区表。水平分表按行拆分数据到多个结构相同的表中,适用于单表数据量过大的场景;垂直分表按列拆分数据到不同结构的表中,解决表字段过多问题;分区表则是数据库内部实现的物理分区机制,对应用层透明。文章详细对比了三者的特点、适用场景及优缺点,并提供了具体操作示例,包括按哈希取模、时间范围的水平分表实现,按字段拆分的垂直分表方法,以及按年份范

文章图片
#数据库#mysql#oracle
编译qt5.15.2(mac/windows)的mysql驱动(附带编译好的文件)

链接:https://pan.baidu.com/s/1m15DbFuFTtXfEyqyOS2cew。因为需要连接到mysql数据库,所以需要连mysql驱动。4,把编译好的mysql放入到如下文件夹。3,编译文件,得到mysql驱动;2,添加mysql的外部关联库;中,把mysql的库文件也放入到。

文章图片
#qt#macos#windows
编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)

因为项目要用到对MYSQL数据库操作,所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动,但是Qt本身不自带MYSQL驱动,需要自行编译。网上有很多qt之前版本的mysql驱动,但是没有找到qt6.5.3版本的,所以只好自己编译。

文章图片
#macos#windows#mysql +1
jetbrains软件打开后突然闪退

在使用jetbrains编程软件时,突然出现打开就闪退的情况。一开始还以为是系统升级到macOS13.1的原因,经过查阅网上资料,发现macOS13.1没有此类的问题。就把问题确定在软件的配置上。未知,官网也未给出解释,但是大佬给出了解决方法(,然后保存文件,最后重启计算机。

Qt中数据结构使用自定义类————附带详细示例

中数据存入时会对存入key值的数据进行比较,并按照比较后的顺序进行排序存储,因此需要重载运算符函数。//重载运算符函数bool operator<(const Animal &a) const //注意这里的两个const}else{int m_size;int m_area;中,当自定义类为value,每当赋值时,都会用到默认构造函数、拷贝构造、赋值运算符函数。如果没有重写构造函数,则编译器会帮

文章图片
#qt#数据结构
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择