avatar
文章
79
标签
21
分类
15
Home
Archives
Categories
Tags
Hymns
搜索
Home
Archives
Categories
Tags

Hymns

079-ClouDNSandCloudflare_mailtransfer
发表于2025-03-20
注册免费域名:www.cloudns.net 托管到cloudflare cloudns主页,选择DNS托管,创建区域,注册免费域名,获得域名 DNS记录,删除所有生成的配置 到cloudflare,添加域,输入现有域,填上面得到的域名,保持默认 添加cloudflare名称服务器,将两个DNS服务器地址填到cloudns的新建记录,类型选择NS cloudflare配置完成后,域名服务会显示活动状态(active) 选择电子邮件,设置路由规则,选择Catch-All,目标位置选择要转发到的邮箱地址 cloudflareDNS的ip地址填到cloudns新建记录中,类型选择A cloudflare生成的邮件配置,包含三个MX和一个TXT,都填到cloudns新建记录中,类型对应一致 总结: 两者需要双向配置 cloudns ip A型 (Cloudflare 服务器ip) NS 两个 (Cloudflare 名称服务器) MX 三个 (Cloudflare 邮件转发) TXT 一个(Cloudflare 邮件转发) cloudflare 域名 目标邮箱地址
078-vscode搜索最大显示19999+
发表于2025-03-06|vscodecursor
vscode 搜索最大显示 19999+, 超过后无法显示精确数量 可以用 notepad++的计数功能, 可以准确显示具体数量 notepad 选中列(块)的方法, 即长内容选择Alt + 双击左键
077-cpp类成员变量的声明顺序
发表于2025-02-28
在 C++中,类成员变量的声明顺序直接影响它们的初始化顺序。以下是关键点: 初始化顺序规则: 成员变量按照在类定义中的声明顺序进行初始化 与构造函数初始化列表中的顺序无关 错误示例: 1234class Example { int a = b; // 错误:b未声明 int b = 5;}; 正确声明顺序: 1234class Example { int b = 5; // 先声明b int a = b; // 正确使用已声明的b}; 内存布局影响: 声明顺序影响类的内存布局 不同访问控制符(public/protected/private)的成员不会改变整体声明顺序 最佳实践: 12345678910class Widget {private: // 按初始化顺序分组声明 int width; // 基础类型优先 int height; std::string name; // 复杂类型在后 ...
076-格式化字符串参数
发表于2025-02-26|c++
好的,我需要解释用户关于 C++模板函数中const char *format和Args &&...args的用法的问题。用户可能不太熟悉可变参数模板和完美转发,所以需要从基础开始讲解,同时结合他们现有的日志库代码示例。 首先,用户提供的代码片段中有一个模板函数trace,它使用了const char *format和Args &&...args作为参数。我需要解释这两个部分的作用以及为什么这样设计。 **const char *format**:这是一个指向常量字符的指针,通常用于格式化字符串,类似于 C 标准库中的printf函数。用户可能已经熟悉这种用法,但需要明确它在模板函数中的作用。 **Args...
075-排序算法
发表于2025-02-12|算法
常见的排序算法可分为比较排序和非比较排序两大类,以下是主要分类及典型算法: 一、比较排序 基础排序 冒泡排序(Bubble Sort) 时间复杂度:O(n²) 特点:相邻元素交换,稳定排序 优化:加入 flag 判断提前终止 选择排序(Selection Sort) 时间复杂度:O(n²) 特点:每次选择最小元素放到前面,不稳定(交换可能破坏顺序) 插入排序(Insertion Sort) 时间复杂度:O(n²)(最好情况 O(n)) 特点:适合小规模或基本有序数据,稳定 分治排序 快速排序(Quick Sort) 平均时间复杂度:O(nlogn) 最坏情况:O(n²)(已排序数据+基准选择不当) 特点:原地排序,不稳定,实际应用最广泛 归并排序(Merge Sort) 时间复杂度:O(nlogn) 特点:稳定排序,需要额外 O(n) 空间,适合外部排序 高效改进型 希尔排序(Shell Sort) 时间复杂度:O(n^(1.3~2)) 特点:插入排序的改进,通过分组增量提升效率 堆排序(Heap...
074-查找算法search-algorithm
发表于2025-02-12|算法
常见的搜索算法可分为基础查找算法、树结构搜索、图搜索和特殊结构搜索四大类,以下是主要分类及典型算法: 一、基础查找算法 线性搜索(Linear Search) 实现方式:逐个遍历元素 时间复杂度:O(n) 适用场景:无序数据集合 二分搜索(Binary Search) 实现方式:基于有序数组的折半查找 时间复杂度:O(logn) 变体:插值搜索(按分布比例预测位置)、指数搜索(先确定范围再二分) 二、树结构搜索 二叉搜索树(BST) 特点:左子树值 < 根节点 < 右子树值 时间复杂度:平均 O(logn),最差 O(n)(退化为链表时) 平衡树系列 AVL 树:严格平衡,通过旋转保持高度差 ≤1 红黑树:近似平衡,插入/删除效率更高 B/B+ 树:多路平衡,专为磁盘存储设计(数据库索引) 堆结构搜索 特点:仅能快速访问堆顶元素(最大/最小值) 应用:优先队列、Top K...
073-提高c++运行效率的操作
发表于2025-02-12|c++
C++ 提高运行效率的常见优化方法包括以下几类: 1. 数据结构优化 选择合适的数据结构:根据具体应用选择 std::vector、std::deque、std::list、std::unordered_map 等。 例如,std::vector 由于数据局部性好,通常比 std::list 更快(适用于频繁遍历的场景)。 std::unordered_map 适用于快速查找,而 std::map 适用于有序存储。 **使用 std::bitset 代替 std::vector<bool>**(你已经在用 std::bitset)。 避免不必要的动态内存分配:可以使用 std::array 或 std::vector::reserve() 预分配空间。 2. 算法优化 减少不必要的计算:避免重复计算中间值,使用缓存(如 std::unordered_map 进行记忆化)。 **使用 std::sort() 而非 qsort()**:C++ 的 std::sort() 采用 introsort,比 C 语言的 qsort()...
072-spdlog使用方法
发表于2025-02-11|c++
Very fast, header only, C++ logging library. spdlog 的 github 项目地址 https://github.com/gabime/spdlog 在右侧的 releases 中下载 Latest 版本. 解压后,将 include 目录下的 spdlog 文件夹拷贝到项目中。注意: spdlog不是单头文件,而是文件夹。 在 main.cpp 中添加如下内容: 1#include "spdlog/spdlog.h" 生成 CMake 5.1 CMake: Qucik Start 5.2 输入项目名 5.3 选择创建 c++项目 5.4 选择 CTest 作为测试支持, 也可以选择 CPack 来打包 5.5 创建可执行文件 Executable 或者 Library 5.6 选择或创建预设配置 在 CMakeLists.txt 中添加如下内容: 12# 设置 spdlog 头文件路径,确保 spdlog...
071-windows编译运行c++项目
发表于2025-01-16|c++
环境 windows 11 cmake 3.31.0 mingw 8.1.0 vscode 1.86.1 vscode 插件 CMake Tools(提供 CMake 支持) C/C++(提供代码补全和调试支持) Code Runner(可选,用于快速运行程序) 环境配置参考 007-windows 下搭建 Cpp 编译环境 步骤一: Create a project创建一个 cpp 项目 步骤二: Configure a project2.1 创建 CMakeLists.txt CMake: Quick Start 输入项目名 选择创建 c++项目 选择 CTest 作为测试支持, 也可以选择 CPack 来打包 创建可执行文件 Executable 或者 Library 2.2 创建 CMakePresets.json创建 CMakePresets.json 预设配置 创建新的预设 从编译器创建, 选择本地编译器 MinGW 命名预设 或者选择已有预设配置 注: 此时应该生成了 CMakeLists.txt 和 CMakePresets.json...
070-cpp提升效率的操作
发表于2025-01-15|c++
传递引用或者指针 使用 std::move 进行移动语义, 通过所有权的转移, 减少拷贝 使用 std::forward 进行完美转发 编译期优化 内联函数 inline 模板和编译期常量计算 使用模板元编程或 constexpr 将某些操作推迟到编译期,避免运行时计算。123constexpr int factorial(int n) { return n == 0 ? 1 : n * factorial(n - 1);} 避免不必要的动态分配 尽量使用自动存储(栈)而非动态分配(堆),因为堆分配的开销更大。 使用标准容器(如 std::vector)时,可以通过 reserve 提前分配足够的内存。12std::vector<int> vec;vec.reserve(100); // 提前分配 100 个元素的内存 避免虚函数的性能开销 如果类不需要继承和多态,尽量避免使用虚函数。 使用 final 关键字声明不可被继承的类,帮助编译器进行优化。 使用轻量级数据结构 选择合适的数据结构,如 std::array 代替...
12…8
avatar
Hymns
文章
79
标签
21
分类
15
Follow Me
公告
This is my Blog
最新文章
079-ClouDNSandCloudflare_mailtransfer2025-03-20
078-vscode搜索最大显示19999+2025-03-06
077-cpp类成员变量的声明顺序2025-02-28
076-格式化字符串参数2025-02-26
075-排序算法2025-02-12
分类
  • Linux4
  • c++25
  • docker1
  • git3
  • learning5
  • vscode1
    • cursor1
  • 博客4
标签
现代c++ 计算机网络 域名 博客 c++11 图床 Linux 编译 工具 git c++17 rss debug wsl2 vscode rust docker c++ 操作系统 设计模式 开箱即用
归档
  • 三月 2025 2
  • 二月 2025 6
  • 一月 2025 4
  • 十二月 2024 8
  • 十一月 2024 35
  • 十月 2024 11
  • 九月 2024 2
  • 六月 2024 11
网站信息
文章数目 :
79
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2024 - 2025 By Hymns
框架 Hexo|主题 Butterfly
搜索
数据加载中