C语言
文章平均质量分 77
疯狂的阿吉
zhangzhongji
展开
-
C++算法(十三)归并排序 分治法的典型应用--撸完睡觉
分治法的应用原创 2022-03-20 22:31:13 · 1837 阅读 · 0 评论 -
C++算法(十二)冒泡排序 最基础的排序算法
文章目录冒泡排序一、题目描述二、解题思路及代码实现1、解题思路2、C++代码实现三、提交结果总结冒泡排序一、题目描述给定一个数组 in,请实现插入排序算法。示例:输入: in = [3,4,2,1,5,0]输出: ret = [0,1,2,3,4,5]二、解题思路及代码实现1、解题思路冒泡排序的思想:内循环:数组从最左边开始,依次比较相邻的元素,如果左侧元素大于右侧元素,则交换两个元素,直到最右侧的元素。这样一轮循环下来,最大元素已经被交换到了最右侧。外循环:控制内循环。每执行一原创 2022-03-13 22:02:42 · 2661 阅读 · 0 评论 -
C++算法(十一)队列的最大值 -- 官方解法,算是学习了队列和双端队列吧
文章目录队列的最大值一、题目描述二、解题思路及代码实现1、解题思路2、C++代码实现三、提交结果总结队列的最大值一、题目描述请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front原创 2022-03-13 22:02:07 · 2279 阅读 · 0 评论 -
C++算法(十)插入排序--算法导论第一个算法,趁着堵车的时间撸一个算法再下班
插入排序就像玩扑克牌一样,是最简单的一种排序算法。原创 2022-03-10 18:27:49 · 650 阅读 · 0 评论 -
C++算法(八)左旋转字符串
旋转字符串的几种解决方案原创 2022-03-03 10:37:28 · 660 阅读 · 0 评论 -
C++算法(七)复杂链表的复制
借助vector和map容器实现链表复制原创 2022-02-28 17:18:47 · 741 阅读 · 1 评论 -
C++算法(六)包含 min 函数的栈
使用单向链表实现带min函数的栈原创 2022-02-28 15:03:37 · 891 阅读 · 0 评论 -
C++算法(五)反转链表
这个解题思路有点像滑动窗口,同时移动三个指针。后面还有c++栈的使用例子。原创 2022-02-25 11:38:47 · 1078 阅读 · 1 评论 -
C++算法(四)判断字符串是否是数值
想学状态机的同学看过来~有技巧哦原创 2022-02-24 16:48:16 · 4128 阅读 · 1 评论 -
Redis 数据类型--字典 学习笔记
文章目录前言一、字典是什么?二、Redis字典实现1.哈希表2.字典3.字典源码总结前言本文是记录Redis字典数据类型的具体实现细节。Redis使用哈希表作为字典的底层实现,一个哈希表里可以有多个哈希表节点,每个哈希表节点保存一组键值对。我们可以通过Redis定义的数据结构及API,了解字典的具体实现原理。一、字典是什么?字典,又称符号表或映射(map),是一个键值对(key-value)的集合。在字典中,每个键都是独一无二的,在程序中,我们可以通过key来操作对应的键值对,如查找值、修..原创 2021-12-21 11:17:28 · 414 阅读 · 0 评论 -
Redis 数据类型--整数集合 学习笔记
文章目录前言一、intset定义二、源码观摩学习总结前言Redis底层整数集合(intset)学习笔记。这个数据类型比较简单,主要知识点是集合元素的升级、元素的查找和插入操作。在元素查找的实现里,使用了二分查找算法,想学习Redis二分查找实现的,可以往下拉,代码在第二部分(intsetSearch)。在一般的查找实现里,基本都会直接使用二分查找算法对整个有序容器进行查找,而Redis的做法是:先判断查找的元素是否落在容器索引范围之外,在范围外的,直接返回容器首(尾)索引即可进行后续操作,只有索引..原创 2021-12-16 10:41:47 · 1273 阅读 · 0 评论 -
Redis list数据类型学习笔记
文章目录前言一、list类型定义二、API总结前言在Redis中,不仅实现了sds字符串类型,还实现了列表类型。一、list类型定义在Redis中,列表类型也如同字符串类型一样,封装了一些必要的属性和操作,方便列表的使用。len:列表包含的节点数量,取列表长度时无需再遍历列表。包含队首、队尾和迭代器,方便遍历列表。包含节点的值的常用操作:比较、复制和内存释放,使用起来非常方便。/* Node, List, and Iterator are the only data struc..原创 2021-12-13 16:00:41 · 688 阅读 · 0 评论 -
Redis string数据类型学习笔记
文章目录前言一、Redis SDS是什么?二、Redis SDS数据结构三、Redis SDS优点总结前言 最近在学习Redis相关的知识,在看Redis五种基本数据类型时,发现里边的字符串类型和以前C语言的不一样,他是Redis内部重新实现的一种数据类型--简单动态字符串(SDS)。C语言的字符串必须以‘\0’结尾,字符串的中间不能包含'\0',这些限制使得C语言字符串只能保存文本数据。二Redis..原创 2021-12-12 22:41:24 · 1103 阅读 · 0 评论 -
Observer(观察者)模式
目录前言一、观察者模式总结1、模式意图2、参与者3、结构、协作、适用性及效果二、观察者模式简单示例1、用例描述2、示例代码总结前言 本周参加了Observer(观察者)模式研讨会,本文的目的是对这个模式的总结和分享,希望对需要学习这个设计模式的同学有所帮助。本文一共分为两个部分,第一个部分是观察者模式的基础知识总结;第二个部分是分享观察者模式简单示例。一、观察者模式总结 &原创 2021-09-21 17:40:03 · 478 阅读 · 0 评论 -
websocket客户端和服务器开发总结
文章目录前言一、websocket资料1.什么是websocket2.websocket优缺点3.WebSocket 原理4.WebSocket 源码下载二、客户端1.开发2.测试三、服务器1.开发2.测试总结前言本文是websocket客户端、服务器开发总结文档,记录从资料收集、代码编写到程序测试等需要注意的事项,帮助同样需要开发websocket的同学能快速完成开发任务。一、websocket资料1.什么是websocketWebSocket是一种在单个TCP连接上进行全双工通信的协..原创 2021-09-03 13:58:02 · 3055 阅读 · 0 评论 -
C语言解析json--超详细,接口、参数全覆盖,一看就会
文章目录前言一、json是什么二、C语言解析json1.下载cJSON库文件2.使用cJSON接口解析json总结前言c语言生成json在我之前的博客有详细说明,想学习的同学可以跳过去看,这篇博客介绍c语言解析json,和生成过程相反,解析json的目的是从json文件中解析出里面的对象及对象的值。一、json是什么JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的..原创 2021-08-27 11:35:50 · 11765 阅读 · 1 评论 -
阿里云服务调用测试方法--超级详细,一看就会
文章目录前言一、服务调用开发1.开发所需要的基础资料汇总2.服务调用协议二、服务调用测试步骤1.新建公共实例产品和设备2.添加自定义服务3.在线调试总结前言本文是参与阿里云相关功能开发的一个总结文档,描述如何使用阿里云提供的SDK开发应用程序所需要的资料及如何进行服务调用的调试测试。这不是一个开发教程,只是资料汇总和调试测试方法记录,方便以后二次开发及测试。作者也是首次接触阿里云,所以相关知识也仅仅局限在阿里云官方提供的文档及阿里云官方工单回复的相关内容。希望本文梳理的内容能够帮助更多需要开发测试..原创 2021-08-10 16:59:33 · 2209 阅读 · 1 评论 -
http开发资料汇总
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、http基础知识1、http是什么2、http工作原理3、http请求消息格式4、http响应消息格式二、curl库三、postman总结前言 最近在学习http开发,本文的目的是对http开发基础资料的一个汇总,方便以后复习,分享出来,希望对同样想学习http的同学有所帮助。本文一共三个部分,第一个部分是http协议的最原创 2021-06-27 16:25:16 · 1812 阅读 · 2 评论 -
AWTK之wbuffer的应用
AWTK之wbuffer的应用前言一、wbuffer_t类定义二、wbuffer_t类实现三、wbuffer_t应用总结前言 最近在做http协议的响应消息解析,由于响应消息的各字段的key/value长度是不确定的,解析的时候如果想保存解析结果,需要动态申请很多长度不一的内存用于保存解析结果,这样的操作过于麻烦,极有可能由于管理不当,产生内存泄漏。为了解决这个问题,李老师的 [AWTK](https:/原创 2021-06-20 21:08:02 · 183 阅读 · 1 评论 -
C语言的面向对象写法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数..原创 2021-06-06 22:22:19 · 1013 阅读 · 2 评论 -
类对象结构型模式之:Composite(组合模式)总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Composite(组合模式)总结前言一、组合模式基础知识总结1、模式意图2、参与者3、结构及效果4、适用性二、组合模式在AWKT中的应用总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可原创 2021-04-05 21:57:54 · 431 阅读 · 0 评论 -
类对象结构型模式之:Bridge(桥接模式)-- C语言例子
Bridge(桥接模式)-- 总结前言一、桥接模式总结1、模式意图2、参与者3、结构及效果4、适用性二、桥接模式C语言用例1、用例背景描述2、用例结构图3、C语言代码实现总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科原创 2021-03-21 21:23:55 · 840 阅读 · 0 评论 -
Linux下的C如何使用GDB调试工具
Linux下的C如何使用GDB调试工具https://jingyan.baidu.com/article/642c9d341e9dc6644a46f70d.html原创 2021-03-18 16:04:50 · 78 阅读 · 0 评论 -
AWTK自定义控件开发总结--九宫格密码控件
九宫格密码控件开发总结前言一、手势密码控件的设计1.功能描述2.类设计3.控件的自绘4.控件事件处理5.控件应用demo总结前言 [AWTK](https://github.com/zlgopen/awtk) 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用原创 2021-03-14 18:24:20 · 631 阅读 · 0 评论 -
windows禁用、启用网卡API
bool CNetCardStateSet::NetCardStateChange(bool Enabled, const char* dev_des){//---------------------------------------------------------------------------//功能:NetCardStateChange 网卡的启用与禁用//参数:dev_des 是 设备描述,就是设备管理器显示的名称//参数:Enabled true = 启用 false原创 2021-03-08 18:20:34 · 1264 阅读 · 0 评论 -
C语言宽字符转字符(wchar转char)
利用Windows API中的函数 WideCharToMultiByte 和 MultiByteToWideCharstd::wstring CharToWchar(const char* c, size_t m_encode = CP_ACP){ std::wstring str; int len = MultiByteToWideChar(m_encode, 0, c, strlen(c), NULL, 0); wchar_t* m_wchar = new wchar_t[len + 1];原创 2021-03-08 15:10:34 · 1008 阅读 · 0 评论 -
Adapter(适配器)模式总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-03-07 20:21:05 · 746 阅读 · 0 评论 -
windows 下获得网卡信息
命令行:ipconfig :获取本机ip地址C语言获取ip地址:#include<stdio.h>#include<winsock2.h>#pragma comment(lib,"ws2_32.lib")void getIP() { WORD w = MAKEWORD(1, 1); WSADATA wsaData; WSAStartup(w, &wsaData); // 加载套接字库 struct hostent *host_info原创 2021-03-04 10:54:02 · 1331 阅读 · 1 评论 -
原型模式在AWTK中的应用
原型模式在AWTK中的应用前言一、原型模式总结1、模式意图2、参与者3、使用场景二、原型模式在AWTK中的应用总结前言 [AWTK](https://github.com/zlgopen/awtk) 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻..原创 2021-02-28 21:00:39 · 220 阅读 · 0 评论 -
Builder模式在AWTK中的应用
Builder模式在AWTK中的应用前言一、Builder模式总结1、模式意图2、参与者3、效果二、Builder模式在AWTK中的应用1、解析xml文件2、构造富文本文件总结前言 [AWTK](https://github.com/zlgopen/awtk) 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 ..原创 2021-02-07 21:09:38 · 232 阅读 · 0 评论 -
C语言实现动态数组--AWTK动态数组及其用法介绍
AWTK动态数组及其用法介绍前言一、darray_t的设计1.属性定义2.成员函数定义二、darray_t的使用总结前言 使用C++的同学都知道,vector容器非常好用,它是一个动态数组,当空间不足时,可以自动扩展空间,而C语言只有静态数组,数组大小一旦确定,就不能扩展了,使用起来很不灵活。在使用C语言编写代码时,我们也期望能有像C++ vector一样功能强大的容器,为此,李老师的[AWTK](htt.原创 2021-01-24 22:12:09 · 562 阅读 · 0 评论 -
C语言实现ring buffer -- AWTK环形缓冲器及其应用
AWTK环形缓冲器及其应用前言一、环形缓冲器是什么二、AWTK环形缓冲器的设计1.属性定义2.接口定义3.接口使用说明三、AWTK环形缓冲器的应用总结前言 最近在学习李老师的[AWTK](https://hub.fastgit.org/zlgopen/awtk)源码,看到环形缓冲器这个类感觉比较有意思,这篇博文就来分享一下AWTK中环形缓冲器的实现以及它在AWTK中的应用。一、环形缓冲器是什么..原创 2021-01-17 20:41:31 · 535 阅读 · 0 评论 -
AWTK工厂模式--符合开闭原则的工厂模式
AWTK工厂模式前言一、工厂模式简单汇总1.简单工厂模式2.工厂方法模式3.抽象工厂模式二、AWTK的改进工厂模式1.改进的工厂模式简介2.C语言代码实现总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科。原创 2021-01-11 00:08:57 · 708 阅读 · 0 评论 -
建造者(Builder)模式应用
Builder模式应用前言一、Builder模式意图二、C语言实现Builder模式1.例子背景简介2、例子重新设计的思想3、例子模块设计4、C语言代码实现总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科。 原创 2020-12-27 23:53:11 · 237 阅读 · 0 评论 -
C语言生成json
C语言生成json前言一、json是什么二、C语言生成json开发步骤1.下载cJSON库文件2.使用cJSON接口生成json总结前言 我们在写应用程序的时候,经常需要把一些数据存储到文件,方便程序启动时使用,或导出给其他应用程序使用。常用的用于配置保存和数据交换的文件格式有:ini、json和xml。我最初使用ini做为应用程序的启动配置文件,当应用程序启动时,根据ini文件里的配置项加载资源来启动..原创 2020-12-13 23:47:12 · 5086 阅读 · 0 评论 -
设计模式之命令模式
设计模式之命令模式前言一、使用场景二、模式结构三、C语言实现命令模式1、接收者--厨师2、命令--订单3、调用者--服务员4、Client--餐厅5、执行结果总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科。&nbs原创 2020-12-06 21:45:15 · 177 阅读 · 3 评论 -
设计模式之观察者模式
设计模式之观察者模式前言一、观察者模式概述二、观察者模式使用场景1.引入库2.读入数据总结前言 软软件设计模式(Design pattern),简称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。--来自百度百科。 &nbs原创 2020-11-29 23:29:39 · 100 阅读 · 0 评论 -
隔离变化,降低耦合度之函数指针
隔离变化,降低耦合度之函数指针前言一、背景与目的二、C语言代码实现1.状态机解析单词2.统计单词个数3.gtest测试总结前言 我们在看程序设计相关书籍的时候,经常会看见:设计一个程序模块的时候,应该做到“高内聚,低耦合”或者“隔离变化,降低复杂度”等,其含义都是差不多的,即:减少模块之间的相互依赖,使模块更独立,尽可能的做到对扩展开放,对修改封闭。C++的多态特性,就是一个隔离变化,降低耦合的一种方式..原创 2020-11-15 22:34:05 · 434 阅读 · 0 评论 -
设计模式之简单工厂模式
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimpor..原创 2020-11-08 21:23:16 · 165 阅读 · 0 评论 -
状态机及其应用
使用状态机解决单词解析问题前言一、什么是状态机二、状态机的四个基本要素1.现态2.条件3.动作4.次态三、使用状态机解决单词解析问题1.状态定义2.条件定义3.动作定义4.状态机图5.C语言实现源码总结前言 我们在看编程资料或者程序设计文档时,经常碰见的一个词就是状态机,状态机是什么?包含什么基本概念?在日常工作中,我们如何应用状态机模型解决实际编程问题?本文将一一进行解答,并给出一个使用状态机解析单词个数原创 2020-11-01 22:22:11 · 2676 阅读 · 1 评论