周末来翻转下链表

      周末, 小雨, 链表翻一翻。用呵呵哒来表达写这篇博文的心情。         有一个链表, 翻转前k个结点, 如果n-k < k,  则不翻转后n-k个结点, 否则, 翻转。 #include <iostream&gt...

2018-08-04 14:52:56

阅读数 2054

评论数 0

用hash map和双向链表实现LruCache

       之前介绍过hash table, 也介绍过hash map,  当然, 双向链表也早就说过, 现在来看看如何用这些东西来实现一个LruCache,  直接上代码: #include <iostream> #include &am...

2018-08-02 22:58:28

阅读数 1708

评论数 0

字符数组的压缩程序

      周六,小雨,写个字符压缩代码,来玩一下。      压缩示例:a b b c c c d e e a b 2 c 3 d e 2 a b b c c c d e f a b 2 c 3 d e f a a a b a b a a a 2 a a a a 3     代码:#includ...

2018-07-14 11:43:39

阅读数 2113

评论数 2

红黑树(RB-tree)比AVL树的优势在哪?

转载地址: http://blog.csdn.net/mmshixing/article/details/51692892         略有删减。        今天看了STL源码剖析中关于红黑树的原理和实现,看完复杂的节点插入、节点颜色变换后不禁想:这些功能经典的AVL树也能实现,为什...

2017-09-03 20:04:51

阅读数 5584

评论数 0

将文件中所有的abc替换为def

面试时遇到这个, 写程序是最烂的解法。         1. notepad/ultraEdit来替换         2. sed/awk来替换         3. php         4. C++         如果有其他好方法, 请告诉我。 谢谢。

2017-09-02 11:48:47

阅读数 5294

评论数 0

又是考查内存对齐和指针理解, 简单东西。

如下: 又是考查内存对齐和指针理解, 简单东西。 #include using namespace std; #pragma pack(4) struct X { int a; char b[3]; short c; char d[3]; int e; char f; cha...

2017-09-02 11:39:12

阅读数 5045

评论数 0

一个台阶有n阶,一人每次可跳1,2……,最多一次跳n阶,问这个人跳上去有多少种跳法?

一个台阶有n阶,一人每次可跳1,2……,最多一次跳n阶,问这个人跳上去有多少种跳法?        这种题目很俗套了, 直接回到高中数学, 数列递归公式搞起:        a(n) =  a(n - 1) + a(n - 2) + ... + 1

2017-09-02 11:23:17

阅读数 5323

评论数 0

满大街都是这种烂题目------从100亿个整数中找出最大的1000个整数

不得不说, 这年头, 满大街都是类似这种烂题目------从100亿个整数中找出最大的1000个整数。        注意点: 内存装不下, 不能一次读到内存。        思路: 随便抽出1000个数, 假设他们是最大的1000个, 然后把剩余的数往其中加, 接着在这1001个数据中淘汰最小的...

2017-09-02 11:02:35

阅读数 5349

评论数 2

一个易错的面试题来加深对C++多态的理解

原题目程序比较长, 我来简化成核心的考察部分, 如下: #include using namespace std; class A { public: virtual void x() { cout << "A::x" << endl; ...

2017-09-02 10:50:35

阅读数 5525

评论数 0

linux fork多进程并发服务器模型之C/C++代码实战

在很早的文章中, 我们一起聊过服务器如何与多个客户端进行通信, 那时, 我们要么用select, 要么用多线程, 却没有用多进程。 其实, 多进程也可以实现与多个客户端进行通信。 如果是在while中循环accept, 然后循环处理事情, 此时, 这种服务是迭代服务, 只能逐一...

2017-07-23 20:16:13

阅读数 5874

评论数 6

聊聊tcp四次挥手中的TIME_WAIT状态存在的理由

记得在2012年的时候, 我开始找实习, 某公司笔试题目中提到了TIME_WAIT这些东西, 我简直是一脸懵逼, 第一次见, 这东西讨论来讨论去, 有用么? 呵呵哒。         下面叙述中, 用A表示tcp连接的主动关闭端, 用B表示被动关闭端。         我们知道, 在tcp四次...

2017-07-22 11:33:34

阅读数 6180

评论数 8

居然很少有人质疑: 2MSL的TIME_WAIT时间真的足够保证旧连接上的所有包都消失吗?

看了不少TIME_WAIT方面的书籍和网络文章, 很多地方不过是在人云亦云的拷贝别人的说法和思想而已, 看得让人颇为无趣。         对于TIME_WAIT, 言必称2MSL, 当然, 如果是笔试面试, 我也会这么答, 因为这就是所谓的标准答案啊。 然而, 2MSL的TIME_WAIT时间...

2017-07-22 09:23:55

阅读数 5756

评论数 1

socket I/O上设置超时的三种方法及其比较

        在socket I/O上设置超时, 一般有三种方法, 下面我们来聊聊。       1.  select/poll        这是最好的方法, 也是最为推荐的, 对于send/sendto和recv/recvfrom, 都可以用select和poll来设置超时时间, 这种情况下...

2017-07-22 00:13:21

阅读数 6096

评论数 0

tcp四次挥手中CLOSE_WAIT状态的最大时间是多长?

我们知道, 在tcp四次挥手中, 被动关闭的一方会进入CLOSE_WAIT状态, 这个状态是干啥的呢?  其实就是wait to close,  也就是wait应用程序(被动关闭端)close socket,  至于应用程序什么时候close, 那完全取决于程序。         所以, CLO...

2017-07-19 00:04:34

阅读数 6337

评论数 0

再聊tcp keepalive机制和与之相关的tcp RST

在http://blog.csdn.net/stpeace/article/details/44162349  《心跳机制tcp keepalive的讨论、应用及“断网”、"断电"检测的C代码实现(Windows环境下)》中, 我已经非常详细地给出了对应的实验和代码。那是很多年...

2017-07-17 07:59:56

阅读数 5564

评论数 2

在linux下玩转带有超时时间的connect函数------某次面试遇到过

在之前的博文中, 我们在Windows下玩过带有超时时间的, 本文我们在linux下来玩。 在某次面试中, 还被遇到了这个问题, 有意思。         直接上客户端代码: #include #include #include #include #include #include #...

2017-07-16 01:54:09

阅读数 5355

评论数 4

很少有人能说清楚listen函数的blacklog的含义, 那就让linux来说说吧!------笔试考过

我发现一个现象, 网上关于backlog含义的讨论, 要么扯淡, 要么到处抄袭。 其实, 我也不懂, 本文仅根据比较权威的书和手册来学习和叙述。         在Stevens的《unix网络编程》中是这样描述的:         listen的参数backlog规定了内核应该为相应套接字进行排...

2017-07-15 14:22:41

阅读数 5398

评论数 0

玩转消息队列之C/C++代码

在以前的文章中, 我们说过消息队列, 那时的消息队列是用户空间的消息队列, 用于线程间的通信和同步。 今天, 我们来介绍下unix/linux下的消息队列, 是系统层面的, 主要用于进程间的通信。          之前我们也说过用共享内存来实现进程间的通信, 但共享内存没法保证进程同步, 必须业...

2017-07-09 19:47:21

阅读数 5150

评论数 0

共享内存linux C/C++代码实战------顺便玩下ipcs, ipcrm, shmget, shmat, shmdt, shmctl

在学校的时候, 谁会搞共享内存这些东西呢? 不过是为了笔试和面试, 大家才搞一下吧。 但是, 在实际工作中, 共享内存确实应用较广。        其实, 共享内存的思想很简单, 我来举个俗气的例子, writer进程和和reader进程通信, 最简单的方式是什么: 当然是共享文件啊。 write...

2017-07-08 15:56:55

阅读数 7018

评论数 0

为什么IP层要分片而TCP层要分段? 这些和MTU/MSS又有什么关系?------tcpdump抓包实战搞起!

在前面的文章中, 我们已经了解到, 数据链路层对上层IP包的长度是有限制的, 以典型的以太网为例, 这个限制值即为MTU(最大值是1500字节),   为此, IP层对上层网络层的数据也有限制, 这个限制值是MSS(最大值为1460字节), 至于为什么是这两个值, 我们在前面的文章已经解释过了, ...

2017-07-02 20:12:59

阅读数 7186

评论数 2

提示
确定要删除当前文章?
取消 删除