C++ STL容器底层实现

STL底层数据结构实现 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快...

2019-07-10 16:55:38

阅读数 27

评论数 0

有return的情况下try catch finally的执行顺序

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值...

2017-07-06 20:43:13

阅读数 135

评论数 0

C++11完成单生产者单消费者模式

#include #include #include #include #include #include static const int kItemRepositorySize = 10; // Item buffer size. static const int kItem...

2017-07-03 16:44:27

阅读数 246

评论数 0

有名管道和无名管道的区别

1)无名管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。     单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一...

2017-07-03 15:46:23

阅读数 281

评论数 0

把《编程珠玑》读薄

作者:Hawstein 出处:http://hawstein.com/posts/make-thiner-programming-pearls.html 目录 开篇啊哈!算法数据决定程序结构编写正确的程序编程中的次要问题程序性能分析粗略估算算法设计技术代码...

2017-06-27 10:45:05

阅读数 330

评论数 0

tcp连接关闭详解和注意事项

状态分析 2.1 FIN_WAIT1 这个状态在实际的工作中很少见。主动方调用close函数关闭连接后立刻进入FIN_WAIT1状态,此时只要收到对端确认ACK后马上会进入FIN_WAIT2状态。因为对端确认ACK是TCP协议栈自己控制的,所以很快就会发出。出现场景:主动方等待ACK过...

2017-06-21 11:59:19

阅读数 198

评论数 0

网络协议常用的端口号

ftp-data            20/tcp               FTP, data ftp                21/tcp              FTP. control telnet           23/tcp  smtp            25...

2017-06-20 09:41:48

阅读数 400

评论数 0

Linux中的fork()详解

一、fork入门知识      一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。     一个进程调用fork()函数后,系统先给新的进程...

2017-05-11 21:52:29

阅读数 118

评论数 0

迭代器失效问题——小心使用erase()

删除指定元素: for (auto it = vec.begin(); it != vec.end(); )  {   if (*it ==3)   {    it = vec.erase(it);   }   else   {    it++;   }  }  f...

2017-05-11 21:31:40

阅读数 382

评论数 0

Leetcode 10. Regular Expression Matching

class Solution { public: bool isMatch(string s, string p) { if(p.empty())return s.empty(); bool T[p.size()+1][s.size()+1]; ...

2017-05-04 21:24:36

阅读数 146

评论数 0

系统设计面试题分析

系统设计面试题分析 应届生在面试的时候,大公司偶尔也会遇到一些系统设计题,而这些题目往往只是考一下你的知识面,或者对系统架构方面的了解,不会涉及编码。很多人感觉难以应对这样的题目,也不知道从何说起,在本文中,总结了回答这类题目需要哪些基础知识,以及怎样使用这些知识回答这些问题...

2017-05-03 10:04:39

阅读数 644

评论数 0

不使用temp变量来交换两个值??该使用异或吗?

通常碰上这种问题,大多是在c++面试中,通常的答案有使用异或来实现,比如如下代码: 反转字符串"abcde"为"edcba" { char *begin = str; char *end = str+n-1; wh...

2017-05-02 16:15:44

阅读数 243

评论数 0

京东2017暑期实习生招聘面经(一面、二面)

京东(共两面,每面一小时): 1.项目 2.每隔两位反转单链表节点 3.有序数组旋转后查找 4.stl容器知道哪些,说说原理 5.map底层实现,它和hashtable的区别 6.红黑树与一般二叉树区别,怎么旋转 7.如何确定hash函数。 二面. 1.项目,讲讲爬虫框架...

2017-04-18 18:35:28

阅读数 3423

评论数 0

腾讯2017暑期实习生OMG事业群一面面经

总结 主要问简历 1.复制构造函数什么时候需要重写 2.多进程同步方式,多线程同步方式 3.两道编程题(数学问题)大数据下点集里最短距离的两点,优化时间(邮局问题,当时忘了…) 4.c++11里并发处理的优势 5.以腾讯视频为例讲后台的开发大概架构 6.stl的局限性 7.分布式服务器负载均衡策略...

2017-04-17 19:35:25

阅读数 2130

评论数 0

C++中的异常安全、以及copy_and_swap

参考effective c++条款29可知,C++中的异常安全提供以下三个保证之一: 基本承诺: 如果异常被抛出,应该保证函数中的状态还是可控的,也就是说当前函数内没有任何对象或者数据结构被破坏,仍然是合法的状态。强烈保证: 如果异常被抛出,函数的内部各个状态应该和发生异常之前的...

2017-04-08 21:46:28

阅读数 170

评论数 0

c++单继承、多继承、菱形继承内存布局(虚函数表结构)

单继承:只有一个基类和一个派生类 class Base { public: virtual void fun1() { cout "Base::func1()" << endl; } virtual void fun...

2017-04-05 22:06:15

阅读数 371

评论数 0

利用STL中的partition完成快排

学习《STL源码剖析》p354时,发现STL中已有partition函数,这不禁让人联想到c语言实现的快排:int Partition(int k[], int low, int high) { int point; point = k[low]; while( low < hig...

2017-04-03 18:30:46

阅读数 1007

评论数 0

HTTP 1.1与HTTP 1.0的比较

HTTP 1.1与HTTP 1.0的比较 一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是...

2017-03-31 16:57:35

阅读数 96

评论数 0

从十七年蝉谈起——hashtable的表格大小为什么要选择质数

十七年蝉,同翅目。北美洲一种穴居十七年才能化羽而出的蝉。它们在地底蛰伏17年始出,尔后附上树枝蜕皮,然后交配。雄蝉交配后即死去,母蝉亦于产卵后死。科学家解释,十七年蝉的这种奇特生活方式,为的是避免天敌的侵害并安全延续种群,因而演化出一个漫长而隐秘的生命周期。 这是百度百科里关于十七年蝉的...

2017-03-30 17:12:37

阅读数 849

评论数 0

各种排序算法稳定性比较

排序算法稳定性 所谓稳定性是指待排序的序列中有两元素相等,排序之后它们的先后顺序不变.假如为A1,A2.它们的索引分别为1,2.则排序之后A1,A2的索引仍然是1和2. 稳定也可以理解为一切皆在掌握中,元素的位置处在你在控制中.而不稳定算法有时就有点碰运气,随机的成分.当两元素相等时它们的位置...

2017-03-30 10:54:02

阅读数 206

评论数 0

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