当前位置: 首页 > news >正文

C++服务器框架开发6——日志系统LogFormatter/size_t学习

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。
其教学视频见:[C++高级教程]从零开始开发服务器框架(sylar)

上一篇:C++服务器框架开发5——日志系统LogAppender/IO类“3种stream”/双感叹号

C++服务器框架开发6——日志系统logFormatter/size_t学习

  • 目前进度
  • size_t学习
    • 大致介绍
    • size_t与int

目前进度

学习到第四个视频12分06s,up对log.h中的LogFormatter进行了定义。从上一节内容可以发现,该类用来做格式化然后输出的。
要点:

  1. log.h中的LogFormatter声明,其中声明了1个内部类FormatItem用于日志内容项的格式化、1个format函数用于格式化日志文本、1个init函数用于初始化解析日志模板、2个成员变量m_pattern(日志格式模板)和m_items(日志格式解析后格式)。
    在这里插入图片描述
  2. log.cc中,定义了LogFormatter构造函数、LogFormatter::format函数、LogFormatter::init函数(还未定义完)。在这里插入图片描述

size_t学习

上一节的最后一张图可以看到,有一个变量定义的类型是size_t,由于我没接触过,所以这次学一下。
参考自文章1

大致介绍

无符号整型、在32位系统中为32位在64位系统中为64位。

#ifndef __HELLOWORLD__
#define __HELLOWORLD__
#include<iostream>#endif int main() {size_t sizet1 = -5;std::cout << sizet1 << std::endl; //无符号数,所以赋值一个负数时,打印出来会出错。size_t sizet2 = 5;std::cout << sizet2 << std::endl;return 0;
}

在这里插入图片描述

size_t与int

  1. size_t在32位架构中被定义为:typedef unsigned int size_t;
  2. size_t在64位架构中被定义为:typedef unsigned long size_t;
  3. size_t是无符号的,并且是平台无关的,表示0-MAXINT的范围;int是有符号的;
  4. int在不同架构上都是4字节,size_t在32位和64位架构上分别是4字节和8字节。
  5. 如果定义数组时用的是int,则在64位机子上,数组长度实际上只能开到2的32次,但是如果用size_t来定义数组长度,则可以自适应地得到能开辟的最大长度。

相关文章:

C++服务器框架开发6——日志系统LogFormatter/size_t学习

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见&#xff1a;[C高级教程]从零开始开发服务器框架(sylar) 上一篇&#xff1a;C服务器框架开发5——日志系统LogAppender/IO类“3种stream”/双感叹号 C服务器框架开发6——日志系统logFormatter/size_t学…...

MYSQL实战45讲笔记--深入浅出索引

深入浅出索引 索引的常见模型 索引模型&#xff1a;是哈希表、有序数组和搜索树。 区别&#xff1a; 哈希表是一种以键 - 值&#xff08;key-value&#xff09;存储数据的结构&#xff0c;我们只要输入待查找的值即 key&#xff0c;就可以找到其对应的值即 Value。哈希的思…...

SpringCloudAlibaba:分布式事务之Seata学习

目录 一、分布式事务基础 &#xff08;一&#xff09;事务 &#xff08;二&#xff09;本地事务 &#xff08;三&#xff09;分布式事务 二、Seata概述 1.Seata 的架构包含: 2.其工作原理为: 3.如果需要在 Spring Boot 应用中使用 Seata 进行分布式事务管理,主要步骤为…...

【MySQL数据库 | 第四篇】SQL通用语法及分类

目录 &#x1f914;SQL通用语法&#xff1a; &#x1f60a;语句&#xff1a; &#x1f60a;注释&#xff1a; &#x1f914;SQL语句分类&#xff1a; &#x1f60a;1.DDL语句&#xff1a; &#x1f60a;2.DML语句&#xff1a; &#x1f60a;3.DQL语言&#xff1a; &…...

Liskov替换原则:用了继承,子类就设计对了吗?

前言 上一篇&#xff0c;我们讲了开放封闭原则&#xff0c;想要让系统符合开放封闭原则&#xff0c;最重要的就是我们要构建起相应的扩展模型&#xff0c;所以&#xff0c;我们要面向接口编程。 而大部分的面向接口编程要依赖于继承实现&#xff0c;继承的重要性不如封装和多…...

腾讯云服务器SA3实例AMD处理器CPU网络带宽性能详解

腾讯云AMD服务器SA3实例CPU采用2.55GHz主频的AMD EPYCTM Milan处理器&#xff0c;睿频3.5GHz&#xff0c;搭载最新一代八通道DDR4&#xff0c;内存计算性能稳定&#xff0c;默认网络优化&#xff0c;最高内网收发能力达1900万pps&#xff0c;最高内网带宽可支持100Gbps。腾讯云…...

接口测试常用测试点

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 测试的策略&#xff1a; 接口测试也是属于功…...

Unity之OpenXR+XR Interaction Toolkit接入HTC Vive解决手柄无法使用的问题

前言 随着Unity版本的不断进化,VR的接口逐渐统一,现在大部分的VR项目都开始使用OpenXR开发了。基于OpenXR,我们可以快速适配HTC,Pico,Oculus,等等设备。 今天我们要说的问题就是,当我们按照官方的标准流程配置完OpenXR后(参考:Unity之OpenXR+XR Interaction Toolkit…...

AC变DC220V变5V小家电电源芯片-AH8652、AH8669

Q: 什么是AH8652和AH8669电源芯片? A: AH8652和AH8669都是AC变DC的电源芯片&#xff0c;适用于将输入的交流电压&#xff08;220V&#xff09;转换为5V直流电压输出&#xff0c;用于小家电的电源模块等应用。 AC变DC220V变5V小家电电源芯片-AH8669 Q: AH8652和AH8669的最大输…...

深度学习笔记之循环神经网络(九)GRU的反向传播过程

深度学习笔记之循环神经网络——GRU的反向传播过程 引言回顾&#xff1a; GRU \text{GRU} GRU的前馈计算过程场景设计 反向传播过程 T \mathcal T T时刻的反向传播过程 T − 1 \mathcal T - 1 T−1时刻的反向传播路径 T − 2 \mathcal T - 2 T−2时刻的反向传播路径 总结 引言 …...

ISFP型人格的性格缺陷和心理问题分析

ISFP人格的特征&#xff1a;性格敏感、为人善良、是具有有创造力的人格类型。他们喜欢追求内心的感受和情感&#xff0c;注重自由、个性和独立。ISFP性人格偏于内向&#xff0c;善于自省&#xff0c;对情绪敏感度高&#xff0c;同理心强。 每种人格类型的都有各自的优势和不足…...

HTML <dir> 标签

HTML5 中不支持 <dir> 标签在 HTML 4 中用于列出目录标题。 实例 目录列表&#xff1a; <dir><li>HTML</li><li>XHTML</li><li>CSS</li> </dir>浏览器支持 IEFirefoxChromeSafariOpera 所有主流浏览器都支持 <…...

leetcode 621. 任务调度器

题目链接&#xff1a;leetcode 621 1.题目 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行&#xff0c;并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间&#xff0c;CPU 可以完成一个…...

线程任务的取消

如果外部代码能在某个操作正常完成之前将其置入“完成”状态&#xff0c;那么这个操作就可以称为可取消的(Cancellable)。取消某个操作的原因很多&#xff1a; 用户请求取消。用户点击图形界面程序中的“取消”按钮&#xff0c;或者通过管理接口来发出取消请求,例如JMX (Java …...

在线聊天项目

人事管理项目-在线聊天 后端接口实现前端实现 在线聊天是一个为了方便HR进行快速沟通提高工作效率而开发的功能&#xff0c;考虑到一个公司中的HR并不多&#xff0c;并发量不大&#xff0c;因此这里直接使用最基本的WebSocket来完成该功能。 后端接口实现 要使用WebSocket&…...

动态规划-硬币排成线

动态规划-硬币排成线 1 描述2 样例2.1 样例 1:2.2 样例 2:2.3 样例 3: 3 算法解题思路及实现3.1 算法解题分析3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 算法实现3.2.1 动态规划常规实现3.2.2 动态规划滚动数组 该题是lintcode的第394题&#x…...

有效的括号——力扣20

题目描述 思路 1.判断括号的有效性可以使用「栈」这一数据结构来解决 2.遍历给定的字符串 s。当遇到一个左括号时&#xff0c;我们会期望在后续的遍历中&#xff0c;有一个相同类型的右括号将其闭合。由于后遇到的左括号要先闭合&#xff0c;因此我们可以将这个左括号放入栈顶。…...

【轻量级网络】华为诺亚:VanillaNet

文章目录 0. 前言1. 网络结构2. VanillaNet非线性表达能力增强策略2.1 深度训练2.2 扩展激活函数 3. 总结4. 参考 0. 前言 随着人工智能芯片的发展&#xff0c;神经网络推理速度的瓶颈不再是FLOPs或参数量&#xff0c;因为现代GPU可以很容易地进行计算能力较强的并行计算。相比…...

读写ini配置文件(C++)

文章目录 1、为什么要使用ini或者其它(例如xml,json)配置文件&#xff1f;2、ini文件基本介绍3、ini配置文件的格式4、C读写ini配置文件5、 代码示例6、 配置文件的解析库 文章转载于&#xff1a;https://blog.csdn.net/weixin_44517656/article/details/109014236 1、为什么要…...

Python对接亚马逊电商平台SP-API的一些概念理解准备

❝ 除了第三方服务商&#xff0c;其实亚马逊卖家本身也可以通过和SP-API的对接&#xff0c;利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作&#xff0c;简单的应用比如可以利用SP-API的对接&#xff0c;实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...