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

为什么C语言不会过时?

这是C语言系列博客的第3篇,如果对前2篇感兴趣,可以点击下面的链接:什么教材适合零基础的C语言学习者?为什么C语言很难评价任何一门编程语言,都是招人骂的。 永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象那我为啥还要做这个挨骂的事呢?作为《C语言点滴》《drop of knowledge of C++》书籍的作者,《C语言新思维,第二版》的译者。我觉得我有责任系统的介绍一下这本语言,他的特点,还有他的未来。这个问题对很多刚刚踏入程序猿这个行业的新手至关重要。因为他们有深深的担忧,万一C语言就像Fortran,perl语言那样过时了怎么办?为什么C语言不会过时?先上一个表,这个就是著名的TIOBE语言排行榜。目前它是一个最权威的一个语言流行度的排行榜,从这个排行榜上看,你会得到一个... Read More

递归

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

《设计模式之美》前Google工程师 王争

你好,我是王争,是“数据结构与算法之美”专栏的作者。“数据结构与算法之美”专栏在今年 2 月底全部更新完毕。时隔 8 个月,我又给你带来了一个新的专栏“设计模式之美”。如果说“数据结构与算法之美”是教你写出高效的代码,那这个设计模式专栏就是教你写出高质量的代码。《设计模式之美》前Google工程师 王争查阅课程:https://time.geekbang.org/column/intro/25 Read More

如何在亚马逊求职面试中回答行为面试问题

大多数美国公司的面试官都依靠行为面试问题来找到合适的人选。这包括亚马逊-行为问题是亚马逊求职面试的重要组成部分。什么是行为面试问题?你知道什么是行为面试问题吗?这些问题的开头是“给我一个…的例子”或“告诉我一段时间…”。在亚马逊面试中回答行为面试问题的提示行为问题并不容易,因为您需要记住过去的一个例子。以下是一些可以帮助您的准则在职位描述中查找有关可能的行为问题主题的线索每次面试都会有所不同,所以我无法确切地告诉您将要问什么问题,但是职位描述将使您对各种可能性有个很好的了解。如果您正在亚马逊申请管理职位,这些问题将问诸如“告诉我您必须向某人提供有关其表现的反馈的时间”或“给我一个激励团队的例子”之类的问题。因为激励团队和提供绩效反馈是经理需要做的两件事。其他选项可能是“告诉我您最成功的聘用”或“您何时帮助一名员工晋升。”如果您正在亚马逊申请产品经理职位,这些问题将询问您诸如“给我一个必须... Read More

Amazon Interview Questions Summary

亚马逊面试问题汇总Amazon Interview Online Assessment Questions(亚马逊在线面试题AMCAT(www.myamcat.comTop N Competitors/Buzzwords⭐⭐ [Experienced]Zombie in Matrix⭐⭐ [Experienced]Critical Routers⭐⭐ [New Grad]Product Suggestions⭐⭐ [New Grad | Experienced]Number of Clusters⭐⭐ [Experienced] Reorder Data in Log Files⭐⭐⭐ [Experienced]Optimal Utilization⭐⭐⭐ [Experienced]Min Cost to Connect Ropes / Min Time to Merge Files⭐... Read More

Google Interview | Phone Screen | Lights Out Puzzle

谷歌面试 | 电面 | Lights Out PuzzlProbleEnglisGiven a binary 2D grid (each element can either be a1or a0). You have the ability to choose any element and flip its value. The only condition is that when you choose to flip any element at index(r, c), the 4 neighbors of that element also get flipped. Find the minimum number of flips that you need to do in order to set all the elements in the matrix equa... 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: 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

[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