iOS

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

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

05_C++数组指针和指针数组

1.数组指针:当数组指针指向一个一维数组时,()优先级高,说明p是指针,指向一个整型的一维数组。这个一维数组的长度是n,也可以说p的步长为n。当p+1时,p指针会跨过n个整型数据的长度。 2.指针数组:当定义一个一维数组时,系统会在内存中为改数组分配一个储存空间,其数组的变量名就是数组的首地址。若定义一个指针变量,并将数组的首地址赋值给指针变量,则我们说该指针指向了这个一维数组。 是一个由n个指针

C++学习笔记——003

malloc() 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。new 与 malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。 //一维数组动态分配,数组长度为 m int *array = new int [m]; //释放内存 delete [] array; //二维数组 int **

C++学习笔记——004

字符 '0' 和 '0' 及整数 0 的区别:字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节(8 位二进制数)。字符 '0':char c = '0'; 它的 ASCII 码实际上是 48,内存中存放表示:00110000。字符 '0': ASCII 码为 0,表示一个字符串结束的标志。这是转义字符(整体视为一个字符)。由于内存中

P1377 [TJOI2011] 树的序 (笛卡尔树)

笛卡尔树模板题 题目给出一个生成序列 要我们构造一个 二叉搜索树。 所以值要满足二叉搜索树的性质。 因为给出的是生成序列,所以序列的下标是满足 最小堆的性质。 那么可以按照满足二叉搜索树的那一维度进行排序也就是值进行排序。 然后进行构建即可。 最后进行先序遍历即可获得答案。 大致的构建方式: 1.先按照值从小到大排序。 2.按照排序顺序一一处理元素。 3.用一个栈来维护笛卡尔树 最右端的一条链 4

秘密相册保险箱加密保护

本隐私政策将帮助您了解以下内容: 一、我们如何收集和使用个人信息 二、我们对 Cookie 和同类技术的使用 三、我们如何共享、转让、公开披露您的个人信息 四、我们如何保护个人信息的安全 五、我们如何存储个人信息 六、未成年人使用条款 七、您的权利 八、隐私政策的修订和通知 九、联系我们 一 、我们如何收集和使用的您的个人信息 1. 产品的正常运行 2. 保障产品、服务及用户使用安全 3.

【学习笔记】分块/莫队

众所周知,分块是一种比较暴力的数据结构。 虽说分块效率不高,但它能处理一些树状数组和线段树难以维护的东西(尤其是不具备可拆分性和可合并性的东西)。 分块遵循整块维护,块内暴力的原则。所以我们一般先考虑一个暴力算法,再使用分块优化。 建立分块: 我们定义一个分块的结构体 b,分别存储每个块的首尾。 对于每个块的第一个元素的下标,我们将其设为上一个块的最后一个元素的下标加 (1)。对于每个块的最后一个

12.【题解】选拔队员

hzoi 题解 题意 有 (n) 个位置,假设人无限并且没有区别,将男女放进 (n) 个位置中,其中女生不能相邻,有多少种方案。 题解 第一眼排列组合,第二眼不可做题,第三眼斐波那契。 当我们大胆的手膜样例, (2) (3) (5) (8) (13) (21) ……这不是斐波那契数列 (Large🐴) ?打完发现还真是。 为啥会这样呢? (Huge🤔) (管他干嘛,切题最重要 (qwq) )

构建自己的muduo库-1

构建自己的muduo库-1 由于muduo库的网络库原本使用了很多boost库的内容,所以我想手写自己的my muduo库,使用C++11特性去替换掉boost部分内容 构建项目建立CMake文件 项目根目录下CMakeLists内容 noncopyable的代码 muduo库里面很多class都继承了noncopyable,看看这个类的代码 noncopyable.h 让继承的类不可使用拷贝

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

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

Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整分辨率降低带宽

一、前言 算下来这个推流的项目作品写了有四年多了,最初第一个版本只有文件点播的功能,用的纯QTcpSocket通信实现,属于比较简单的功能。由于文件点播只支持文件形式的推流,不支持网络流或者本地设备采集,所以迫切需要打破这个瓶颈,而后加入核心的网络推流功能,这也是本项目的核心功能,不仅支持各种各样的流媒体服务,推流这块支持文件、网络音视频流、本地设备采集、本地桌面采集。自定义各种参数,视音频同步推

【题解】P2627 [USACO11OPEN] Mowing the Lawn G

【题解】P2627 [USACO11OPEN] Mowing the Lawn G 题目跳转 数据量比较大,暴力肯定是不行的。只能考虑用动态规划的方式来做。 这道题有许多dp设计的思路,这里提供两个: 方法一:普通状态设计 定义(dp[i][1/0])表示截止遍历到第(i)个元素时,选择第(i)个元素或不选第(i)个元素可以分别可以获得到的最大工作效率。 根据定义可以得到以下状态转移方程: 如果不

数据结构(五)kmp---以题为例

给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模式串 P 在字符串 S 中多次作为子串出现。 求出模式串 P 在字符串 S 中所有出现的位置的起始下标。 输入格式 第一行输入整数 N,表示字符串 P 的长度。 第二行输入字符串

bfs判重的坑

在 (bfs) 中判重时,应优先在入队时进行判重,而不是在出队时进行判重,因为一个节点 (u) 在入队到出队的过程中,可能需要先出队很多其他节点 (v),这就会导致其他节点出队且加入新节点的过程中,可能会重复加入多次节点 (u),进而导致 (queue) 占用的空间过大,最后可能有几个点 (MLE(Memory Limit Excess))。 例题 AC代码:在出队时判重 MLE代码:出队时判重

top命令常用方法

一、简介 top命令是一款用于实时监控系统进程和资源占用情况的命令行工具。它可以显示系统已经运行的进程列表,并实时更新各进程的CPU、内存、I/O等使用情况。 二、语法 也可以使用man top查看详细介绍   三、常用参数 -d seconds:设置top命令更新进程信息的间隔时间,默认为3秒。 -n iterations:设置top命令更新进程信息的次数,即

实时云渲染和云交互技术介绍与应用

实时云渲染是一种新兴的技术,它可以将用户的计算机上的数据通过云服务器进行渲染,从而实现实时渲染的效果,实时渲染可以在加速渲染速度的同时,实现更高质量的渲染效果、减轻用户的计算机负担、全方位提升使用体验; 云交互同样也是一种利用云端资源进行计算的交互技术,云交互实现了更加流畅自然的交互效果,提高用户体验和体感感受;在应用场景上,实时云渲染和云交互都需要依靠云端计算资源的支持来提高用户体验和视觉效果,

19笔试真题:看程序写结果,含有内嵌对象的类的构造函数调用次序

看程序写结果,含有内嵌对象的类的构造函数调用次序 结果表明,先按照类成员的声明次序调用相应类的构造函数  

P3939 数颜色 题解

题目链接:数颜色 经典题目了,暴力数据结构随便过,不过这种不带修的单个颜色的数量查找有个经典的做法:分桶+二分。具体的为每个颜色分桶,记录有序下标,这样就可以二分出 ([l,r]) 上的下标个数。对于一次交换来说,如果相邻的颜色相同那么并不会发生交换,如果不同那么就发生交换,由于下标在桶里,我们还需要同时维护桶内下标所在的有序下标序列编号 (id),交换时需要将二者交换了,即交换二者所在的桶,由于

3-3-系统时间管理

3.3.1 两种管理时间   在 Linux 中有硬件时钟与系统时钟等两种时钟。   硬件时钟是指主机板上的时钟设备,也就是通常可在 BIOS 画面设定的时钟;   系统时钟则是指 kernel 中的时钟;   所有 Linux  相关指令与函数都是读取系统时钟的设定,当 Linux 启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作     UTC:世界标准时间

数据结构(四)队列1---以题为例

给定一个大小为 n≤106的数组。 有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。 窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 7 -1

linux上编译release并剥离调试信息

使用 objcopy: 1转载出处: https://unpluggedcoder.me/2014/04/24/%E7%94%9F%E6%88%90%E5%8F%AF%E8%B0%83%E8%AF%95%E7%9A%84Release%E7%89%88%E6%9C%AC%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6--%E8%B0%83%E8%AF%95

`static_cast` caution

static_cast caution It is likely to lead unexpected behavior and maybe dangerous to invoke static_cast on wrong C++ object. Below example demostrates it. On the second invocation of foo, foo(d2), the

2022CCPC绵阳-E-一类图上DP优化

link:https://codeforces.com/gym/104065/problem/E 题意:(n) 个城市由 (m) 条边连成一张无向图,每个点所属连通块大小至少是2。接下来有 (q) 次危机,每次危机恰发生在一个城市 (x),需要所有在 (x) 城市的所有居民迁移到其他城市(之后可以迁移回来)。第 (i) 个城市有 (a_i) 人,每个人经过一条边需要花费 (w(u,v)) 的代价。

Linux系统查看硬件具体型号信息

1.查看CPU (1)使用cat /proc/cpuinfo或lscpu  (2)使用dmidecode -i processor   Dmidecode 这款软件允许你在 Linux 系统下获取有关硬件方面的信息。Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。偶发现这个工具很有用,就总结一下。 DMI

MPI(一)- 快速入门

六大基础函数 MPI_Init int MPI_Init(int *argc, char ***argv)初始化 MPI 环境 MPI_Finalize  int MPI_Finalize(void)结束MPI环境 MPI_Comm_rank int MPI_Comm_rank(MPI_Comm comm, int *rank)获取当前进程的标识。MPI_Comm是通信域,表示一组进程之

std::promise返回的是future对象

在C++中,std::promise对象调用get_future()方法返回一个std::future对象,而不是指针、引用或其他类型的对象。std::future对象用于获取与std::promise对象相关联的异步操作的结果。 std::promise和std::future是C++标准库中的一部分,用于处理异步操作的结果。std::promise对象可以在一个线程中存储一个值或异常,而std

chapter12-动态规划

动态规划:就是用于求解优化问题的方法。优化问题比如说求最大值or最小值。动态规划的做法就是采用小心地策略进行暴力搜索,在多项式时间内求得最优解。 这里的小心策略就是复用子问题的解,将已解决子问题的答案保存下来,在需要子问题答案的时候便可以直接获得,而不需要重复计算,提高效率。拆分出来的子问题可以用递归的方式求解,而要复用子问题的解就要记忆化。 1.递推求解 接下来通过Fibonacci数列的求解

P3302 [SDOI2013] 森林 题解

题目链接:森林 有意思的树上可持久化线段树变形题,建议先看这个:P2633 Count on a tree 题解 对于本题而言,我们重新阐述树上可持久化线段树的核心思想,对于点路径/边路径上的第 (k) 大问题,我们使用树上前缀和问题的思想,将其转化为可差性问题:一条路径上的权值线段树可以拆分为几棵权值线段树进行贡献拿到,具体可以参照链接文章提到的树上前缀和的基本思想。 本题观察到既有连接新边操作

Codeforces Round 934 (Div. 2)

Codeforces Round 934 (Div. 2) A - Destroying Bridges 解题思路: 完全图每个点的连边数为(n - 1)。 (k < n - 1):都可到达。 (k geq n - 1):将点(1)的边删完,只能呆在点(1)。 代码: B - Equal XOR 解题思路: 对于每个数字只有三种情况: 只出现在((1, n)) 只出现在((n + 1

数据结构(三)单调栈---以题为例

给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 输入格式 第一行包含整数 N,表示数列长度。 第二行包含 N 个整数,表示整数数列。 输出格式 共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则

<<  <  152  153  154  155  156  157  158  159  160  161  162  >  >>