刷新
并查集

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

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

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

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

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

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

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

第八章 函数探幽

博主头像 8.1 C++内联函数 提出的目的:为了提高程序运行速度。 内联函数和普通函数的区别: 编译方式: 内联函数在编译时会被直接替换到调用处,而不是像普通函数那样通过函数调用的方式执行。这样可以减少函数调用的开销,提高程序执行效率。 普通函数则是通过函数调用的方式执行,会涉及函数栈的压栈和出栈操作。 代 ...

C++ Qt开发:QNetworkAccessManager网络接口组件

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

C++STL第二篇(vector的原理用法)

博主头像 vector vector的数据安排以及操作方式,与array非常相似,两者的唯一差别在于空间的运用的灵活性。Array是静态空间,一旦配置了就不能改变,要换大一点或者小一点的空间,可以,一切琐碎得由自己来,首先配置一块新的空间,然后将旧空间的数据搬往新空间,再释放原来的空间。Vector是动态空间 ...

同个线程里,如果线程正在忙过程中,定时器时间到了会被延迟触发吗?

同个线程里,如果线程正在忙过程中,定时器时间到了会被延迟触发吗? 在同一线程中,如果线程正在忙过程中,定时器的触发事件会被延迟,直到线程空闲下来才会被触发。这是因为在QT中,线程和定时器的处理都是通过事件循环来完成的。当线程处于忙碌状态时,事件循环将会被阻塞,直到线程执行完当前的工作才会继续运行事件 ...

AT_abc344_e 题解

博主头像 本文同步发表于洛谷。 赌狗天天输的一集。 赛时各种【数据删除】原因导致没做出来。 大意 给你一个长度为 \(N\) 的序列 \(A=(A_1,\ldots,A_N)\)。保证 \(A\) 中的元素是不同的。 你要处理 \(Q\) 个操作。每个操作是以下两种类型之一: 1 x y:在 \(A\) 中元 ...

C++左值右值完美转发转移

博主头像 左值(Lvalue)与右值(Rvalue) 英文含义: 左值(Lvalue):Locator value,意味着它指向一个具体的内存位置。 右值(Rvalue):Read value,指的是可以读取的数据,但不一定指向一个固定的内存位置。 定义 左值:指的是一个持久的内存地址。左值可以出现在赋值操作 ...

AT_abc344_d 题解

博主头像 本文同步发表于洛谷。 赌狗天天输的一集。 大意 你最开始有一个空字符串 \(S\)。 你还有编号为 \(1, 2, \dots, N\) 的袋子,每个袋子都包含一些字符串。 袋子 \(i\) 包含 \(A_i\) 个字符串 \(S_{i,1}, S_{i,2}, \dots, S_{i,A_i}\) ...

【C/C++语法基础】6.结构体(新手推荐):揭开神秘面纱,探索C语言中的“乐高积木”

博主头像 前言 你们是否曾在学习C/C++的道路上,对着屏幕陷入沉思,疑惑于如何将多个不同类型的数据捆绑在一起,组成一个有机的整体?是否曾在数据管理的海洋中迷失,渴望有一种“乐高积木”般的能力,可以让你们随心所欲地搭建属于自己的数据结构?那么,结构体,就是你们需要的答案! 什么是结构体? 结构体,是C/C++ ...

C++ Qt开发:QNetworkInterface网络接口组件

博主头像 Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QNetworkInterface`组件实现查询详细的网络接口参数。在Qt网络编程中,`QNetwork... ...

C++ Qt开发:QHostInfo主机地址查询组件

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

分块小结

博主头像 分块概念 就是把一个长序列分成 \(\sqrt{n}\) 个区间,分别维护每个区间内的信息和,然后查询时可以优化时间复杂度。 还可以完成一些线段树完成不了的神秘操作,比如这道题。 但是总体时间复杂度不如线段树,但它的扩展性比线段树还要强,因为分块中每个区间的信息和不需要具有传递性。 怎么理解? 就比 ...

C++ Qt开发:QFileSystemWatcher文件监视组件

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

欧拉函数学习笔记

博主头像 读前警告:本文 MD 以及 \(\LaTeX\) 差到爆炸,因为是直接复制的。 首先,\(\varphi(n)\) 的值是小于 \(n\) 且与 \(n\) 互质的数的个数。 //求n的欧拉函数值: phi[n] int getPhi(int n){ int ans = n; for(int i = ...

C++入门编程----C++运算符(8)

博主头像 什么是运算符 运算符是让程序执行特定的数学或逻辑操作的符号,用来表示针对数据的特定操作,也称之为操作符。C++运算符分别有算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、移位运算符、sizeof运算符、三目运算符、逗号运算符和域解析运算符。 算术运算符 C++中的算术运算符用于进行数学运算 ...

<1···161718···33>