C++ memset 的使用

在竞赛时使用 memset 发现初始化的默认值无法生效,后来发现我对 memset 的参数的理解有误。void * memset ( void * ptr, int value, size_t num );将指针 ptr 所指向的内存块中前 num 个字节,用 value 替换。注意,这里面的 value 是一个字节的值。下面谈及两个场景,初始化为 0。memset(a,0,sizeof(a));初始化“最大值”,之所以加上引号,是因为并不是真正的最大值。但是能够带来最大值的效果的同时,还能带来一些好处。memset(a,0x3f,sizeof(0x3f));0x3f3f3f3f 代表的十进制数值是 1061109567 是 10^9,和 32 位的有符号整型的最大值是一个量级。而往往,数据在一般情况下都是小于 10^9 的。所以,可以达到替换最大值的效果0x3f3f3f3f + 0x3f... Read More

递归

递归往往面对一类问题时,如果它的规模足够小或者说达到既定的边界条件时,我们可以直接获取答案。但是,当这类问题的规模比较大时,却往往无法直接获取答案。那么,这个时候就可以通过“自身调用自身”的方式,来不断地减小问题的规模,直到问题的规模被缩减到足够小时,直接将答案返回上层的调用者,最终获取到原问题的解。如果将求解的过程逆过来,那么就是所谓的递推。点击 阅读全文 > Read More

Protected: Revival Plan 02 in 2019

BackgrounTarget: RevivalTime: range from 2019.09.01 to 2020.02.29Plan 01 for 2019.11.01 ~ 2019.12.3Computer Science Fundamenta《计算机系统》前5部分 351/517 书完成率 67.9%(总 67.9%) - 0/351 0%(总0%DSOutputProblems 82 - 18/82 22%InputVideo 4 - 14/4 350%Article 4 - 5/4 125Open Source Projec《 MySQL技术内幕 》书完成页数 152(总100%)- 81/152 53.3%(总 366/437 83.8%)《Redis深度历险》 书完成率章节 19(48.7%)(总100%)- 4/19 21.1%(总 61.5%System Desig... Read More

Protected: Revival Plan 01 in 2019

BackgrounTarget: RevivalTime: range from 2019.09.01 to 2020.02.29Plan 01 for 2019.09.01 ~ 2019.10.3DSOutputSolved problems up to 2.16 * 61 = 132 problems —— 46 34.8%4 contests of leetcode.com —— 4 100%InputVideo 4 —— 1 25%Article 4 —— 3 75Theoretical knowledgStorag《MySQL技术内幕》20% —— 285/437 326.1%(总65.2%)《Redis深度历险》20% —— 9/39 115.5%(总51.3%Sytem DesigVideo cumulative time 10 hours & Lea... Read More

《Redis深度历险》Chapter 1 Learn Note

1.7 布隆过滤器其数据结构包含一个大型的位数组和若干个不一样的无偏hash函数。所谓无偏即能够把元素的hash值计算得比较均匀,让元素被映射到位数组中的位置比较随记。输入预计元素数量:n错误率:输出位数组长度 lhash函数的最佳数量 [code lang="cpp"k = 0.7 * (l / nf = 0.6185 ^ (l / n[/code空间占用估计http://krisives.github.io/bloom-calculator误判率[code lang="shell"f = (1 - 0.5^t) * k # k 是 hash函数的最佳数量[/code应用爬虫重复URL过滤NoSQL数据库领域,降低磁盘IO垃圾邮箱过滤1.9 漏斗限流维护漏斗属性:漏斗容量、漏嘴流水速率、漏斗剩余容量与上一次漏水时间。每次灌水(请求)前,进行计算给漏斗腾出空间。能够腾出多... Read More

《DATA STRUCTRUES A Psuedocode Approach with C++》Chaper 3. Linked List Learn Note

3-1 LINEAR LIST CONCEPTLinear lists can be divided into two categories: general and restricted.In a general list, data can be inserted and deleted anywhere and there are no restrictions on the operations that can be used to process the list. Such as the random list, ordered list.In a restricted list, data can only be added or deleted at the ends of the structure and processing is restricted to op... Read More

《MySQL High Availability》Chapter 1&3 Learn Note

Part I. High Availability and ScalabilitOne of the database features that supports both high availability and scalability in an application is replication.Replication is used to create redundancy in the database layer as well as to make copies of the databases available for scaling the reads.Part I covers how you can use replication to ensure high availability and how you can scale your system.Chapter 1 Introductio... Read More

《DATA STRUCTRUES A Psuedocode Approach with C++》Chapter 2. Searching Learn Note

Chapter 1 Introductio1-2 The Abstract Data Typ什么事抽象数据类型(ADT)?下面是我的理解描述的是一种抽象的数据,那么这个数据的抽象属性该如何描述呢?定义一个(抽象的)数据,其中包含数据的存储方式,一些操作方法。但是,对外屏蔽其实现细节。也就是说,对于使用者而言,知道它能做些什么事情,但不需要知道它是如何实现的。即抽象数据类型。举例来说,C++中的Stack,Queue,Java中的Class即为抽象数据类型的例子。Chapter 2 Searchin2-1 List SearcheSequential SearcSequential Search(顺序搜索Sentinel Search(哨兵搜索哨兵搜索,相对于顺序搜索,主要是通过在序列尾部追加目标值,进而减少在搜索过程中下标索引的判断次数,以提升搜索性能。Probability Search(概率搜索... Read More

Protected: Study Plan for Summer Vacation in 2019

目标DSA《DATA STRUCTURES A Psuedocode Approach with C++》(英文版) 10%System Design & OODNULLStorage《Redis深度历险》20%《High Performance MySQL》(英文版)1%Computer Language《C++ Primer Plus》0时间2019年07月08号 ~ 2019年8月31号(共计54天完成度7.75相关笔记http://blog.ihuxu.com/data-structrues-a-psuedocode-approach-with-c-learn-notehttp://blog.ihuxu.com/data-structrues-a-psuedocode-approach-with-c-chaper-3-linked-list-learn-notehttp:... Read More

Protected: 2019算法与数据结构学习清单

字符串最长公共子串(Longest Common Substring)最长公共子序列(Longest Common Sequence)字符串 & 文件内容Diff滚动哈希(Rolling Hash)- Rabin-Karp string-searchingrsyncSuffix arrayMinimal string(最小表示法)数论负进制(如:-2进制)的转换与加法运算图论Prim's Minimum Spanning Tree(MST Read More

2018年度回忆与总结 – 算法

工作特价车这个项目周期持续半年之多,应该算是成长最多的一个项目了。在产品侧,能够深入到用户的角度与产品沟通产品形态,但尚浅。在技术侧,由于前期的积累与沉淀,能够快速的判断技术方案,给出技术排期,快速迭代。在运营侧,参与每周的运营周会,学习产品效果的评估分析、问题分析与解决的过程,但尚浅。整个项目,对于沟通能力、产品分析能力、业务技术熟悉程度与产品运营的过程有了一定的增长与认识。提升了相当的软实力。服务化改造针对现有的业务系统进行代码与架构级别的改造,这里我参与了一次代码级别的改造(未上线)。整体思路是围绕DDD(Domain-Driven Design)思想进行系统分层,按业务概念收敛模块,按产品形态收敛系统组件。在这个过程中,对于系统的建模能力,业务的抽象分析能力有了一定的提升。计算机算法主要关注点在LeetCode上,从2018年9月份开始,累计刷题189道。在基础算法与数据结构方面,... Read More

[XChat-Server开发笔记]2019.02.15

http://blog.ihuxu.com/xchat-server-development-notes-list在👆上面,可以找到[XChat-Server开发笔记]主题相关的所有文章1. Log4增加Log4j插件扩展2. 数据包报文头协议设计参考QQ的协议:https://www.pediy.com/kssd/pediy10/83047.htm0000: 02 ->表示QQ数据包的起点。0001 - 0002: 为QQ客户端版本号对于QQ2008为:1221。0003 - 0004: 就是我们所说的QQ命令。根据试验发现命令为0016表示该包包含发出聊天记录的信息。0005 - 0006: 2B的序列号。0007 - 000A: 4B的发送消息的QQ号码。000B - 倒数第二字节: 用改进的TEA算法加密的包含聊天内容的数据包。(里面有很多丰富的信息如接收信息的QQ号码IP地... Read More

[iOS Swift 学习笔记]面向对象篇

http://blog.ihuxu.com/ios-swift-learning-notes-summary在👆,可以查看所有关于[iOS Swift学习笔记]主题相关的文章关键点在Swift中,默认同一个项目中(同一个命名空间下),所有的类都是共享的,不需要impor构造函数作用给成员分配空间初始化成员变量调用父类的构造函数 - 给父类属性分配空间 & 设置初始值如果子类重载父类的构造函数,且子类没有重写父类的构造函数,那么此时子类不会对外部提供init方法了关键字init 构造函数override 重写orderload 重载KVC构造函数定义模型属性的时候,如果是对象,通常是可选在需要的时候创建避免写构造函数,可以简化代码如果是基本数据类型,不能设置成可选的,而且要设置初始值,否则KVC会崩溃如果需要使用 KVC 设置数值,这个属性不能是 private 的使用KVC方法之前,应... Read More

[XChat-Server开发笔记]2019.01.28 – 30

http://blog.ihuxu.com/xchat-server-development-notes-list在👆上面,可以找到[XChat-Server开发笔记]主题相关的所有文章1. 未登录的客户端线程池采用单例模式(Singleton Parttern)设计未登录的客户端线程池,采用静态内部类的形式保证其线程安全。之所以静态内部类能够保证单例模式的线程安全,是因为Java在底层针对类的加载已经做了同步处理,已经是线程安全的了。这种方式的优点懒加载,只有在需要的时候进行加载,节省资源在多线程共享使用一个单例时,确保线程安全关于线程安全下的单例模式的使用,参考文章:http://blog.ihuxu.com/java-singleton-pattern-usages-for-thread-safe1.1 客户端线程池的主要数据结构1.1.1 基于链表的阻塞队列(Linked B... Read More

[iOS Swift学习笔记]函数篇

http://blog.ihuxu.com/ios-swift-learning-notes-summary在这里,能够找到所有关于该主题的文章内容相关代码目录:iOS高级教程swift3.0微博项目/02/002-函数的定义 at git@github.com:GenialX/iOS-Swift-learning.gi函数函数的定义外部参数(实参的描述)省略外部参数(使用_实现)参数的默认值通过设置函数的默认值,在调用的时候,可以任意组合有默认值的型参的形式,而不用定义多个型参格式的函数无返回值的函数无返回值的函数,主要用在闭包相关代码目录:iOS高级教程swift3.0微博项目/02/003-闭包的定义 at git@github.com:GenialX/iOS-Swift-learning.gi闭包在Swift中,函数是特殊的闭包主要的应用场景异步执行完成回调控制器间回调自定义... Read More

[iOS Swift 学习笔记]基础篇

http://blog.ihuxu.com/ios-swift-learning-notes-summary在这里,可以看到所有该主题相关的学习笔记文章。时间2019.01.2内容基础数据结构变量(var) 与 常量(let)运算符可选项概念 & 解包方式 & ?? 运算符流程控制语句if let & guard letif var & guard varswitchfor字符串遍历长度拼接集合数组定义遍历增、删、改容量合并字典定义遍历增、删、改合并文章来源:胡小旭 => [iOS Swift 学习笔记]基础篇 Read More

[iOS Swift 学习笔记]前言

前言学习资源:传智播客的《iOS高级教程swift3.0微博项目》代码笔记:git@github.com:GenialX/iOS-Swift-learning.git 目录:iOS高级教程swift3.0微博项目学习方式:视频为什么选择视频学习的方式?相对于看书有哪些优点?乐趣更高,不容易困倦视频资源会高效率的讲解实战中的应用技巧,比如语法特性相关、xCode集成开发环境相关、项目架构设计相关等等笔记列表http://blog.ihuxu.com/ios-swift-learning-notes-basihttp://blog.ihuxu.com/ios-swift-learning-notes-functionhttp://blog.ihuxu.com/ios-swift-learning-notes-object-oriented文章来源:胡小旭 => iOS Swift 学习笔... Read More