logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入理解 C++ unordered_map 与 unordered_set

对比分析了C++中基于红黑树的map/set和基于哈希表的unordered_map/unordered_set。关键差异在于:有序性(红黑树保持有序,哈希表无序)、时间复杂度(O(logN) vs O(1))、迭代器类型(双向 vs 单向)。哈希表通过哈希函数直接定位元素,平均性能更优,但需要自定义哈希函数和相等比较。实测显示,在百万级数据下哈希表的插入和查找速度可达红黑树的3-5倍。选择时应根

文章图片
#c++#开发语言
理解 C++ 哈希表的原理与工程实践

哈希表是一种高效的数据结构,通过哈希函数将键映射到存储位置,实现O(1)平均时间复杂度的增删查改。文章介绍了哈希表的核心思想、哈希函数设计(如除法散列法、BKDR哈希)、冲突解决方案(开放定址法和链地址法)以及工程优化技巧(如质数表扩容)。链地址法因其高负载容忍度和简单删除操作成为主流实现方式(如STL的unordered_map)。关键点包括:合理设计哈希函数、控制负载因子、选择冲突处理策略以及

文章图片
#c++#散列表#开发语言
C++11 核心特性深度解析(一):列表初始化

C++11是C++语言发展史上的重要里程碑,于2011年发布,带来了诸多革新性特性。梳理了C++版本演进时间线,重点介绍了C++11的核心价值,包括语法简化(auto、lambda)、性能提升(右值引用、移动语义)和标准库增强(智能指针、线程库)。其次介绍了列表初始化特性,通过统一{}列表初始化语法实现了内置类型、自定义类和容器的简洁初始化方式,并介绍了std::initializer_list的

文章图片
#c++#开发语言
C++11 核心特性深度解析(二):右值引用与移动语义

讲解了C++11中的右值引用与移动语义机制。主要内容包括:1)左值与右值的核心定义与区分标准;2)左值引用与右值引用的语法对比及使用场景;3)移动语义的实现原理,包括移动构造和移动赋值;4)完美转发机制与std::forward的实现原理;5)现代C++对值类别的精细划分。通过具体代码示例,展示了移动语义如何有效避免深拷贝、提升性能,并详细分析了编译器优化策略(如NRVO/RVO)。

文章图片
#c++#算法#开发语言
为什么 C++ 需要区分左值和右值?

左值/右值的区分,让 C++ 能够在不牺牲值语义安全性的前提下,获得接近指针操作的性能。这是 C++11 性能革命的核心支柱。

文章图片
#c++#开发语言
C++11 核心特性深度解析(三):lambda 表达式

lambda 是 C++11 给程序员的"语法糖":让你用更少的代码写仿函数,编译器在背后帮你生成类,性能零损失。

文章图片
#c++#开发语言
C++11 核心特性深度解析(四):可变参数模板

介绍了C++11可变参数模板的核心概念与用法。主要内容包括:1. 可变参数模板基本语法,通过class...Args声明模板参数包,支持零或多个参数;2. 参数包扩展机制,使用递归推导或直接展开模式处理参数包;3. emplace系列接口实现原理,对比其与push_back的效率优势;4. 完美转发参数包的必要性,避免右值退化为左值。关键点在于编译器会将可变参数模板实例化为具体函数,emplace

文章图片
#c++#开发语言
网络计算器:理解序列化与反序列化(下)

介绍了网络计算器项目中TCP服务器的实现细节,分析了TcpServer.hpp的多进程并发模型。服务器采用双fork技巧创建孤儿进程处理客户端请求,父进程专注接收新连接。展示了三层架构设计(业务层、协议层、服务器层)如何通过lambda回调实现解耦,并对比了客户端与服务端的实现差异。关键点包括:使用unique_ptr管理资源、多进程并发处理、文件描述符关闭策略以及孤儿进程自动回收机制。

文章图片
#网络#php#开发语言 +3
网络计算器:理解序列化与反序列化(中)

介绍了网络计算器项目中Socket通信的核心实现,重点解析了序列化与反序列化机制。文章分为三部分:1)Socket.hpp使用模板方法模式封装TCP通信流程,通过纯虚函数实现多态;2)Protocol.hpp通过JSON实现结构化数据的序列化/反序列化,并设计自定义协议解决TCP粘包问题;3)Cal.hpp作为纯粹的业务层,处理计算逻辑并返回响应结果。项目亮点包括:使用JSON-CPP库处理数据转

文章图片
#网络#linux#运维 +2
MySQL【数据类型】

MySQL数据类型选择对数据库性能和数据完整性至关重要。数值类型包括整型(TINYINT到BIGINT)、浮点型和定点型(DECIMAL),整型越界会报错,建议慎用UNSIGNED。小数类型中DECIMAL精度更高,适合财务数据。字符串类型CHAR固定长度效率高,VARCHAR变长节省空间,最大长度受编码影响。日期时间类型中TIMESTAMP支持自动更新。ENUM和SET类型适合单选和多选场景,保

文章图片
#mysql#数据库
    共 36 条
  • 1
  • 2
  • 3
  • 4
  • 请选择