刷新
AT_abc345_d 题解

博主头像 我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习我不会长大后再学习 ...

C++模板实现之谜:为何只能在头文件中?解密原因与高级分离技术

博主头像 概述:C++中模板必须在头文件中实现,因为编译器需要可见的实现以生成模板具体实例的代码。通过头文件,确保模板在每个编译单元中都能被正确展开,提高可维护性。 在C++中,模板只能在头文件中实现的主要原因是编译器在使用模板时需要生成对应的代码,而这部分代码必须在编译时可见。以下是详细的解释和示例。 基础 ...

C++ Qt开发:QUdpSocket实现组播通信

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QUdpSocket`组件实现基于UDP的组播通信。组播是一种一对多的通信方式,允许一个发送者将数据报文... ...

解析C++链接错误:未定义引用和未解析符号的完整解决方案

博主头像 概述:C++中的"未定义的引用"和"未解析的外部符号"错误通常源于声明与定义不一致或缺失定义。解决方法包括确保所有声明有相应定义、检查定义位置,使用头文件和命名空间组织代码。这些步骤帮助开发者提高代码可维护性和避免链接错误。 在C++中,"未定义的引用"和"未解析的外部符号"错误通常指向编译器找不到 ...

C++ Qt开发:QUdpSocket网络通信组件

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QUdpSocket`组件实现基于UDP的网络通信功能。与`QTcpSocket`组件功能类似,`QUd... ...

C++STL第五篇(链表List的使用方法)

博主头像 list 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相较于vector的连续线 ...

设计模式学习(一)单例模式补充——指令重排

博主头像 目录前言指令重排简介指令重排对单例模式的影响改进方法std::call_once和std::once_flagstd::atomic和内存顺序局部静态变量总结参考文章 前言 在《单例模式学习》中曾提到懒汉式DCLP的单例模式实际也不是线程安全的,这是编译器的指令重排导致的,本文就简单讨论一下指令重排 ...

C++中虚表是什么

博主头像 虚函数表,以及虚函数指针是实现多态性(Polymorphism)的关键机制。多态性允许我们通过基类的指针或引用来调用派生类的函数 定义 虚函数(Virtual Function) 定义:类中使用virtual 关键字修饰的函数 叫做虚函数 语法: class Base { public: virtu ...

C++ Qt开发:QTcpSocket网络通信组件

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。`QTcpSocket`和`QTcpServer... ...

C++回调函数精解:基础使用和高级技巧一网打尽

博主头像 概述:C++回调函数提供了灵活的编程方式。基础使用演示了如何定义和调用简单的回调,而高级使用则展示了返回值非 `void` 的回调和Lambda表达式的灵活性。这种机制使程序更模块化、可维护。 在C++中,回调函数可以用于实现基础和高级的功能。以下是一个包含基础和高级用法的例子,演示如何定义和使用回 ...

链表 Linked List

博主头像 2024.3.15 芝士wa 参考视频:bilibli-数据结构-链表 “印度小哥讲得真好” 链表 对于链表来说,存储数据需要两个部分,一是数据本身,二是指针,该指针指向下一个数据的地址,依次链接,直到最后一个元素,指针指向空(NULL) 遍历的时间复杂度为O(n) 插入的时间复杂度为O(n) 删除 ...

C++STL第四篇(最简单的栈和队列)

博主头像 stack&queue stack stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为 ...

并查集

博主头像 并查集 并查集是一种可以动态维护若干个不重叠集合,并且支持合并与查询的数据结构,主要用于处理不相交集合的的合并关系。 为了具体实现并查集这种数据结构,首先我们需要定义集合的表示方法。在并查集中,我们采用"代表元"法,即为每一个集合选择一个固定的元素,作为整个集合的代表。 其次,我们需要定义归属关系的 ...

C++发布订阅者模式:实现简单消息传递系统

博主头像 概述:这个C++示例演示了发布者-订阅者模式的基本实现。通过 `Event` 类,发布者 `Publisher` 发送数据,而订阅者 `Subscriber` 订阅并处理数据。通过简单的回调机制,实现了组件间松散耦合的消息传递。 好的,我将为你提供一个简单的C++实例,演示如何使用发布者-订阅者模式 ...

C++ STL第三篇(搞清楚deque原理和有多少用法)

博主头像 deque Vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。 Deque容器和vector容器最大的差异,一在于d ...

起飞前检查

博主头像 OI 一场空,不开 long long 见祖宗 cmp,一定要在 sort 里写入 打 st 表一定要算空间复杂度 打倍增 LCA 一定要算空间复杂度 注意 ÷0 线段树 4 倍空间 无向图,链式前向星 2 倍空间 树链剖分要注意是原编号还是 dfn 序的编号 链式前向星遍历图的时间复杂度永远为 + ...

QT生成固定长度的随机字符串

博主头像 最近项目中有一个需要使用QT生成固定长度随机字符串的需求,需求也很简单,就是生成一个n位的仅包含0-9以及大写字母的字符串,因为这也是第一次使用QT自身的随机数,这里就做一下简单记录。 废话不多说,直接上代码。 1 QString getRandomString(int length) 2 { 3 ...

<1···91011···31>