十年磨剑走天涯
码龄10年
求更新 关注
提问 私信
  • 博客:74,343
    社区:726
    问答:1,419
    76,488
    总访问量
  • 28
    原创
  • 22
    粉丝
  • 104
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:云南省
加入CSDN时间: 2016-08-04
博客简介:

hixiaogui的博客

查看详细资料
个人成就
  • 获得76次点赞
  • 内容获得11次评论
  • 获得171次收藏
  • 博客总排名29,415名
  • 原力等级
    原力等级
    1
    原力分
    67
    本月获得
    0
创作历程
  • 5篇
    2026年
  • 4篇
    2021年
  • 3篇
    2019年
  • 19篇
    2018年
成就勋章
TA的专栏
  • 命令行工具
    1篇
  • elasticseach
    2篇
  • redis
    1篇
  • C语言
    5篇
  • Linux
    8篇
  • 网络
    6篇
  • java se
    1篇
  • 操作系统
    1篇
  • C++
    8篇
  • 设计模式
    1篇

TA关注的专栏 7

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
创作活动更多

【多重好礼】鸿蒙心迹 · 开发录原创征稿活动

鸿蒙开发者的实战经验,值得被记录。从踩坑排查到项目复盘,从工具脚本到学习笔记,每一段真实的开发经历,都是社区最宝贵的技术资产。「鸿蒙心迹 · 开发录」正式启航,不限主题、随时可写,只要是鸿蒙开发相关的真实经验都欢迎投稿。 本活动为 [HarmonyOS 7.0 创新内容共创季](https://builderx.csdn.net/activity-site/harmonyos/activity2026)双轨征文之一,与[「共创季 · 稿事节」](https://harmonyosdev.csdn.net/6a97f0de2b83d06f0ecadec5.html)深度征文互补——「稿事节」写深度技术长文,「开发录」写日常开发实战笔记。 「开发录」每月一期,12月截止,本季共三期,投稿即有机会获得京东卡、CSDN博客流量券、亿万Token、社区定制周边好礼!

126人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

C++ STL 容器操作复杂度速查表

复习 自用
原创
博文更新于 2026.08.01 ·
182 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

C++ 编译与链接机制深度解析(含 C++20/23 标准特性)

阶段核心工作涉及的主要 C++ 特性预处理宏展开、头文件包含、条件编译宏定义、#include#ifdef编译词法/语法/语义分析、代码优化、代码生成Lambda、重载、虚函数、模板、Concepts、Coroutines、constexprconsteval汇编汇编代码 → 机器码无特殊语言特性链接符号解析、重定位、合并inline、ODR、、Modules、模板实例化去重C++20/23 的核心趋势编译期计算能力持续增强consteval、Concepts 将更多逻辑前移到编译期。
原创
博文更新于 2026.07.29 ·
257 阅读 ·
6 点赞 ·
0 评论 ·
4 收藏

C++ shared_ptr 与 weak_ptr 深度解析

当两个或多个对象通过shared_ptr互相持有对方的引用时,就会形成循环引用(Circular Reference)。此时每个对象的引用计数都至少为 1,导致即使外部所有shared_ptr都已销毁,对象仍然无法被释放,造成内存泄漏。特性shared_ptrweak_ptr是否增加引用计数✅ 增加强引用❌ 不增加是否能直接访问对象✅ 可以❌ 需要lock()是否影响对象生命周期✅ 影响❌ 不影响解决循环引用❌ 会导致✅ 打破循环线程安全(标准库)引用计数安全lock()安全。
原创
博文更新于 2026.07.29 ·
191 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

C++ 原子操作完全指南 + 单例模式实战

原子操作与在单例模式中的有应用
原创
博文更新于 2026.07.28 ·
367 阅读 ·
8 点赞 ·
0 评论 ·
6 收藏

C++ const 与 auto 推导完全指南

本文全面解析了C++中const与auto推导的关键知识点,主要内容包括: 顶层const与底层const: 顶层const表示变量本身不可修改(基本类型、指针常量) 底层const表示不能通过变量修改指向的对象(指向常量的指针、引用) 指针可以同时具有两种const类型 指针const的区分: 常量指针(const int*):内容不可改,指针地址可改(底层const) 指针常量(int* const):指针地址不可改,内容可改(顶层const) 记忆口诀:"const在*的哪边,哪边就是常量" auto
原创
博文更新于 2026.07.28 ·
324 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

sizeof细讲

sizeof是C语言的一个关键字,不是函数,其用于计算被操作对象所占有的内存大小,单位为字节。我们将以一下的例子来细细讲解sizeofint a=0;int *p=&a;int arr[100];(1)sizeof(a);(2)sizeof(p);(3)sizeof(arr);(4)sizeof(&arr)(5)sizeof(&arr[1])第一种情况,si
原创
博文更新于 2024.07.27 ·
1553 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

指针知识整理

一、何为指针?首先我们有了解以下预备知识(1)内存:内存是顺序编号的一些列存储单元组成的,在内存中,每个存储单元都赋予为敌的编号(地址),计算机通过地址可以方便的在内存单元中存储数据。(2)可以将函数名通过%x打印出该函数的地址。(3)一个程序载入内存,代码和数据都有地址编号。(4)变量名就是对内存一段空间里面数据的抽象,变量的类型决定了读取的字节数...
原创
博文更新于 2024.07.27 ·
2560 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

自行实现strcpy,strcat,strcmp函数

一、strcpy在这里我们需要科普一个东西:断言何为断言?如果你是字面理解,没错就是断定一句话是不是真的。简单吧?当然我们C语言的断言是以函数assert()来判断一个表达式或者一个值是否是我们需要的,此外使用这个函数需要引用一下assert.h这个头文件。assert断言的用法很简单,就是在一个表达式内判断所需的表达式要判断的值是否是我们需要的。如有以下的函数体void My_strcat(ch...
原创
博文更新于 2024.07.27 ·
1252 阅读 ·
1 点赞 ·
3 评论 ·
2 收藏

switch与跳转表

一、switch跳转语句类似于多路开关,可以根据给定条件匹配到符合条件的语句。正式点来说,是根据一个整形数值来进行多路分支的一种结构。在处理具有多种可能结果时,这种语句非常有效。它不仅挺高了C代码的可读性和逻辑性,而且使用跳转表来作为底层实现基础。switch基本框架为int conditionswitch(condition){ case condition1:statements ; ...
原创
博文更新于 2024.07.27 ·
10682 阅读 ·
6 点赞 ·
2 评论 ·
11 收藏

HTTP协议总结

概念 超文本传输协议http协议定义了浏览器如何向万维网服务器请求万维网文档,以及怎样把文档传送给浏览器。从层次来讲,HTTP是面向事务的应用层协议是www和浏览器交换文件的重要基础操作过程 服务器端建立套接字(socket),命名套接字(bind)(sockfd>sin_port=htons(80)),创建监听队列(listen)之后等待浏览器发送HTTP请求报文,一旦监听到连接建...
原创
博文更新于 2024.07.27 ·
2147 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

C++编写简单工厂和抽象工厂

模式介绍:在简单工厂模式中,可以根据参数的不同返回不同的实例。。简单工厂模式专门定义一个类来负责创建其它类的实例,被创建的实例具有共同的父类。简单工厂模式包含三个角色:工厂角色Factory,抽象产品角色(Product)和具体产品角色(ConcreteProduct)先做个实例来全面诠释我们的工厂模式 有一个销售管理系统支持多种支付方式,如现金支付,信用卡支付,代金券支付等,在设计过如果不使用...
原创
博文更新于 2024.07.27 ·
1924 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

使用pagemap来检验fork的写时复制

首先我们先要了解以下了解以下几种地址物理地址:是真实存在的RAM的具体存储单元地址逻辑地址:由于x86自80838以来出现的分段内存管理方式,操作系统将内存分为若干个段,各个段的起始地址(段基址)由CS,DS,SS,ES,我们平时的程序对变量取的地址叫作段内偏移地址,也就是逻辑地址。线性地址:线性地址的组成为段基址<<4+逻辑地址(一般情况),线性地址就是存在于虚拟地址空间上的地址,又...
原创
博文更新于 2024.07.27 ·
3525 阅读 ·
11 点赞 ·
1 评论 ·
17 收藏

一些基本问题:大小端,网络字节序,socket编程函数的注意点,gdb和coredump调试

1,什么是大小端?大小端是指数据在内存的的存放顺序,现代计算机一次能够加载32bit或者64bit的数据或者指令,因而数据的存放顺序影响它被装载到整数的值。以小端来讲:低地址存数据的低位,高地址存数据的高;而大端敲好反过来:高地址存低位,地址存高位。2.测试大小端测试大小端最常用的方法是使用一个联合体,定义成员为一个short和char然后给short类型变量赋值为1,看char变量是否也是1,如...
原创
博文更新于 2024.07.27 ·
1171 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C++ STL总结

C++ STL分为5部分容器,迭代器,空间适配器,函数对象,泛型算法,适配器一、容器理解容器的作用:容器的主要作用是用于存储对象(这里说的对象时指的是包含基本数据类型的数据和复合数据类型实例的对象),提供一种工具来减少我们平时一些数据结构,比如说链表,队列,栈的一些操作和基础数据结构的封装。容器分为三类:顺序容器:比如说vetor,list,deque(1)向量容器:vector,底层数据结构是...
原创
博文更新于 2024.07.27 ·
808 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Linux下对json文件进行查看-jq

Linux下对json文件进行查看-jqjq是一个查看和解析json文件的linux命令工具,centos直接yum install -y jq ,查看字段可用简单的jsonpath去访问;本文测试数据:{ "name":"John", "age":30, "car":null,"phone":["1"] }{ "name":"zhang", "age":30, "car":null,"behavior":[{"say":"hello"},{"eat":"rice"}] }常用方法:.
原创
博文更新于 2024.07.27 ·
9379 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

使用multiprocessing处理海量的es数据

最近在对大概600w的es数据进行处理,最开始使用的是单进程跑,一跑就是好几天,后面琢磨着要提高效率,于是开始思考如何在原有单进程基础scroll的基础上使用多进程处理es中Index的数据。由于我们不能起多个进程对es进行scroll操作,这块es对scroll的数量是有限制的,于是就琢磨着将第一个scroll存下来,放入一个任务队列中去,然后多个进程去读scroll然后将他们读到的scroll_id放入队列中,直到最后scroll结束整张表。基于上面的思考,于是结合之前的 es读取,进...
原创
博文更新于 2024.07.27 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用python读取elasticsearch的index的所有数据

使用python读取elasticsearch的index的所有数据思路通常使用from+size组合可以便利一定数据量(index.max_result_window),超过限制就es就报错了,想要读取超过index.max_result_window的数据就需要使用scroll进行翻页操作,scroll相当于使用了一个接口自身维护的以及游标(下标)去es中获取数据,每次scroll都会返回下一次scoll的id地址,直到最终hits.hits长度为0(表示已读取当前Index的数据)search
原创
博文更新于 2021.03.27 ·
2610 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis运维与开发笔记-redis(6.0)以下,为什么快?

Redis运维与开发笔记:redis(6.0)以下,为什么快?(1)redis将数据存在内存中,而内存的响应时间大概是100ns左右,高效的响应速度是redis支持每秒万级读取的基本保障;(2)redis将自身的各种事件:连接,读写,关闭事件与epoll的事件模型向结合,使用epoll作为io多路复用的接口,介绍了网络Io相关的消耗;(3)redis(6.0以下)是单线程的!单线程可以: (1)简化编程流程,在编码层面不用考虑多线程相关的编程; (2)...
原创
博文更新于 2021.03.27 ·
335 阅读 ·
0 点赞 ·
3 评论 ·
0 收藏

c++11之default和=delete

本文原文来自《深入理解c++11》中有关于=default和=delete的章节,本文做一个大致的整理,描述他们的大概语义,方便在编程过程中正确使用/*一个类默认有如下函数:构造函数拷贝构造函数拷贝赋值函数(operator=)移动构造函数此外,c++编译器还会为以下这些自定义类型提供全局默认构造函数operatoroperator &operator &...
转载
博文更新于 2019.07.22 ·
257 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

malloc,realloc,calloc的总结.xlsx

发布资源 2018.04.11 ·
xlsx
加载更多