- 《 C++ 修炼全景指南:十九 》想懂数据库?深入 B 树的世界,揭示高效存储背后的逻辑
摘要本文深入探讨了B树的原理、操作、性能优化及其实际应用。B树作为一种平衡多路树结构,因其高效的查找、插入和删除操作广泛应用于数据库与文件系统中。文章首先介绍了B树的定义与性质,并详细阐述了节点分裂、合并等核心操作的实现方法。接着,通过分析B树在数据库检......
- 通过C++跨平台的预编译宏来区分不同的操作系统:Win32/Win64/Unix/Linux/MacOS
因为C++具有跨平台的特性,所以有些需求一套代码就多端使用,比如我最近在学习的OpenGLES。但是,不同平台还是具有一定差异性,所以我们首先得判断出是什么平台?比如iOS系统和Android系统。那么如何判断呢?我们接着往下看!要检查C或C代码中主机的操作系统,我们需要检查编......
- C++基础学习4练习
//题目三:交换两个变量的值//定义两个整数变量,要求用户输入它们的值。//交换这两个变量的值,并输出交换后的结果。//#define_CRT_SECURE_NO_WARNINGS1//#include<stdio.h>//intmain()//{// inta=0;// intb=0;// intc=0;// intd=0;//// printf("请输入数......
- spdlog一个非常好用的C++日志库(十): 十六进制输出spdlog::to_hex
目录1.引言2.spdlog::to_hex用法3.spdlog::to_hex实现原理4.总结1.引言 在平时调试网络程序时,多数都会用到wireshark抓包工具,在查看某个包的数据都是按照下面这样格式显示的:那么它是怎么做到的呢?其实spdlog的to_hex也能做到这一点,下面就来介绍它的用法和原......
- C++之模板
C++模板是一种支持泛型编程的机制,允许开发者定义使用任意类型作为参数的函数和类。模板提供了代码复用和类型安全的抽象,使得同一段代码可以用于不同的数据类型。函数模板定义和使用函数模板是一种可以接受任意类型参数的函数。它通过在函数声明中使用模板参数(用尖括号<>包围......
- C++之vector 容器的使用
在C++中,std::vector是一个非常灵活且常用的容器,它提供了动态数组的功能。以下是一些基本的使用方式:包含头文件要使用std::vector,首先需要包含头文件<vector>。#include<vector>创建vector//创建一个空的vectorstd::vector<int>vec;//创建一个vector并初始化......
- C++之智能指针
智能指针是C++中的一种资源管理工具,用于自动管理动态分配的内存。它们通过在不再需要时自动释放内存来防止内存泄漏。C++标准库提供了几种不同类型的智能指针,每种都有其特定的用途和行为。主要的智能指针类型std::unique_ptrstd::shared_ptrstd::weak_ptr1. std::unique_pt......
- Open3D (C++) 旋转矩阵转欧拉角公式推导及过程实现
目录一、概述1.1原理1.2实现步骤1.3应用场景1.4注意事项二、关键函数2.1头文件2.2主要函数三、完整代码三、结果展示一、概述 将旋转矩阵转换为欧拉角是逆向理解三维对象姿态的一种方法。旋转矩阵是一个3x3的正交矩阵,它描述了在三维空......
- C++-练习-67
题目:考虑下面的结构声明structcustomer{ charfullname[35]; doublepayment;};编写一个程序,它从栈中添加和删除customer结构(栈用Stack类声明)。每次customer结构被删除时,其payment的值都被添加到总数中,并报告总数。源代码:test.h#if......
- C++代码优化(二): 区分接口继承和实现继承
目录1.引言2.接口继承3.实现继承4.如何选择接口继承与实现继承5.完整实例6.总结1.引言 在C++中,区分接口继承和实现继承是一种良好的编程实践,有助于提高代码的可维护性、可读性和可扩展性。接口继承通常指的是从基类继承纯虚函数(purevirtualfunctions......