简易路由表匹配算法实现(前缀树)-不考虑掩码长度

TrieNode为前缀树节点,Trie是前缀树。 Trie中分为几个接口: getFourNum(),得到IP地址中的4个数字; addTree(),添加前缀树节点; searchTree(),在前缀树中进行查找。 struct TrieNode { TrieNode() :...

2019-07-16 21:36:34

阅读数 2

评论数 0

sort sort -r sort -n sort -nr的区别

sort sort -r将数字当做字符进行排序 sort -n sort -nr 按照整个数字来排序 举例说明: linux系统中新建一个num.txt,neir内容如下 使用sort排序 使用sort -n排序 ...

2019-04-26 10:57:22

阅读数 663

评论数 0

初始化列表中初始化数组

学习了一下前缀树。 需要用到一个结构体保存两个指针,如下 struct Node { Node() { nexts[0] = nullptr; nexts[1] = nullptr; } Node *nexts[2]; }; 能不能将初始化操作放在初始化列表中呢,如下 ...

2019-03-23 14:28:54

阅读数 183

评论数 0

string解决大数相加(包含负数),清晰整洁,满足所有情况

 主接口addstring,在内部根据不同的情况调用doublePositive()和minusstring(), 需要注意的地方都写在注释里了 string doublePositive(string s1, string s2) { int l1 = s1.size()-1, l2 =...

2019-01-25 16:56:11

阅读数 66

评论数 0

so_reuseaddr so_reuseport区别--简单粗暴

so_reuseport : 允许多个套接字 bind()/listen() 同一个TCP/UDP端口 内核层面实现负载均衡,提升服务器性能 so_reuseaddr: tcp断开连接后进入time_wait状态或创建监听套接字的进程被kill掉,导致端口没有释放,无法进行新的连接。加上此...

2019-01-23 21:31:35

阅读数 50

评论数 0

Linux网络编程“惊群”问题总结

原文链接:https://www.cnblogs.com/Anker/p/7071849.html 1、前言   我从事Linux系统下网络开发将近4年了,经常还是遇到一些问题,只是知其然而不知其所以然,有时候和其他人交流,搞得非常尴尬。如今计算机都是多核了,网络编程框架也逐步丰富多了,我所知...

2019-01-23 20:17:03

阅读数 74

评论数 0

priority_queue实现k路有序数组合并

接着上一篇https://blog.csdn.net/znzxc/article/details/86590154 上一篇是自实现堆排序,这一次用priority_queue实现 struct MinHeapNode { int val; int i; int j; MinHeapN...

2019-01-22 11:58:22

阅读数 187

评论数 0

自实现不定长k路有序数组合并--头条面试

看过一些网上的方法,大都是照搬过来的,本人的思路和网上的一致---使用最小堆,但没有封装的Class,简单易懂 (priority_queue可看另一篇https://blog.csdn.net/znzxc/article/details/86592356) 分为4部分:最小堆节点的定义、建立...

2019-01-22 10:29:16

阅读数 333

评论数 0

巧夺天工的kfifo(修订版)

原文:https://blog.csdn.net/linyt/article/details/53355355 Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过...

2019-01-07 10:43:07

阅读数 46

评论数 0

定时器:4叉堆与2叉堆的效率比较

在学习muduo,看到定时器的实现方式,提到有一下几种实现方式。 1.优先级队列,即二叉堆。 2.4叉堆,libev中使用的模型即是如此,比二叉堆更高效,因为具有更好的内存局部性。 3.二叉搜索树。 4.使用set,以pair<timerstamp,Timer*&am...

2019-01-06 12:29:00

阅读数 164

评论数 0

图解one loop per thread:使用muduo网络库实现web服务器

最近在看陈硕的muduo网络库,书中一直提到一个概念:one loop per thread,一直不是很理解,看完了源码之后自己梳理了一下,有所感悟,图解一下one loop per thread思想. 主线程属于main loop,创建listenfd,创建listenfd的可读回调函数,...

2018-12-28 10:48:36

阅读数 432

评论数 0

为什么要限制服务器最大并发连接数

若文件描述符耗尽,则无法为新的socket连接创建描述符,也无法close它,则epoll_wait会一直返回,造成busy loop,CPU占用率接近100%,影响同一loop上的连接。 一个比较简单的解决办法:设置最大连接数,当超过最大连接数时,关闭新的连接。...

2018-12-27 09:41:06

阅读数 966

评论数 0

用原始指针初始化智能指针的一些问题

class A{}; int main() { A* a = new A; cout << a << endl; shared_ptr<A> p(a); //delete a; cout &lt...

2018-12-24 18:00:58

阅读数 115

评论数 0

linux内存管理——mmap函数详解

原文链接:https://blog.csdn.net/notbaron/article/details/80019134 mmap函数是unix/linux下的系统调用。 当存在客户-服务程序中复制文件时候,其数据流如下,要经历四次数据复制,开销很大。       如果采用共享内存的方式,那么将...

2018-12-24 09:23:04

阅读数 43

评论数 0

shared_ptr与weak_ptr(解决循环引用)

原创:https://blog.csdn.net/ingvar08/article/details/79200424 shared_ptr是带引用计数的智能指针,可以说大部分的情形选择用shared_ptr不会出问题。那么weak_ptr是什么,应该怎么用呢?  weak_ptr也是智能指针,但...

2018-12-13 17:47:30

阅读数 175

评论数 0

Linux中errno使用

原文:https://blog.csdn.net/21aspnet/article/details/6740110  当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编...

2018-12-06 20:20:58

阅读数 78

评论数 0

验证:fork之后父子进程之间堆不共享

 输出如下: 由此可见,指针位置不发生变化,但是已不在一个存储空间了 ,子进程改变指针所指变量不会对父进程的值造成影响。

2018-12-04 21:38:52

阅读数 102

评论数 1

彻底弄懂HTTP缓存机制及原理

转载:https://www.cnblogs.com/chenqf/p/6386163.html 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。 但是对于很多...

2018-12-04 17:46:57

阅读数 50

评论数 0

HTTP常用状态码分析

2XX 表示正常处理 200 OK 表示正常处理 GEt方法,会返回 请求资源的实体。 HEAD方法,会返回 请求资源的实体首部,不返回主体。 204 NO content  请求处理成功,但是没有资源可以返回。 对于一些提交到服务器处理的数据,只需要返回是否成功的情况下,可以考虑使用状...

2018-12-04 09:25:46

阅读数 35

评论数 0

Linux下getopt()函数的简单使用

最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。 好了,虽然啰嗦了点,但确实是忠告。步入正题: 我们的主角----getopt()函数。 英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。...

2018-11-22 10:14:11

阅读数 71

评论数 0

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