C&C++
文章平均质量分 73
Focustc
多学习,多思考 Contact Me caozhk@gmail.com
展开
-
C++的位运算
位逻辑运算符有:&,|,^,~,>>, 可以应用于多种数字类型。 并运算可以用来做标记,把一个字节当作8个flag。 注意不要把按位逻辑运算符与逻辑运算符弄混。逻辑运算符:&&,||,! 返回结果为true或false,用于条件等检测语句。原创 2013-07-16 10:41:20 · 1544 阅读 · 0 评论 -
Tip: char *和char*的区别
char *和char*的区别这两种写法编译上面都没有问题,但是在某些情况下会造成歧义char* p1, p2这样的写法声明了指针p1,字符p2char *p1, *p2这样的写法表示声明了两个指向字符的指针*是变量的修饰符*p表示p是一个指针,是修饰p的,而不是修饰char的因此*和p之间不要有空格,否则就会造成误解,误以为char*是一种数据类型,继原创 2016-03-15 01:40:23 · 2481 阅读 · 0 评论 -
C++中的容器
C++中的容器容器与容器适配器容器包括vector, deque, list, map, multimap, set, multiset。容器适配器包括基于deque的stack和queue,基于vector的priority_queue。string也实现了stl的接口。因为编写C++程序时经常需要查找容器的函数接口,故作此总结。C++新引入的容器与函数未引入。主要参考自:S原创 2015-04-08 02:39:17 · 6986 阅读 · 1 评论 -
thttpd源码解析 定时器模块
thttpd源码解析 定时器模块thttpd是非常轻量级的http服务器,可执行文件仅50kB。名称中的第一个t表示tiny, turbo, 或throttling与lighttpd、memcached、redis相比非常小巧,仅有不到8k行,而后三者大小分别为:60k,13k,86k支持HTTP/1.1和CGI;采用IO复用实现,单线程,可移植;实现了基于URL的文件流量限制功能特别原创 2014-08-11 12:54:53 · 2590 阅读 · 0 评论 -
如何写出一个较好的快速排序程序
写出一个较好的快速排序程序快速排序是常用的排序算法之一,但要想写出一个又快又准的使用程序,就不是那么简单了需要注意的事项首先要写正确。通常使用递归实现。其递归相当于二叉树展开,因此如果要用迭代实现的话需要使用一个队列来保存后续遍历信息。快速排序需要找到一个pivot值,如果顺序选择pivot则易造成N^2的复杂度,如果使用随机数则效果最好,但开销又太大,采取三数中值法比较合适。原创 2014-07-27 08:02:59 · 18498 阅读 · 0 评论 -
《程序员面试宝典》精华 面向对象部分
《程序员面试宝典》精华 面向对象部分正所谓取其精华,去其糟粕。本文谨记录下《程序员面试宝典》一些关键的知识点、易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录。书里是没有糟粕的,只是指不那么重要,或者比较简单的地方略过而已,并不是说书写的不好。希望以后回顾时无需再看此书,只看保留在文中的精华即可。文中有少许bug,亦摘录在此。本文专注面向对象部分,包括第十章到第十一章的内容第十原创 2014-08-07 07:25:57 · 2746 阅读 · 0 评论 -
《程序员面试宝典》精华 编程语言部分
《程序员面试宝典》精华 编程语言部分正所谓取其精华,去其糟粕。本文谨记录下《程序员面试宝典》一些关键的知识点、易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录。当然这里的糟粕只是指不那么重要,或者比较简单,并不是说书写的不好。希望以后回顾时无需再看此书,只看保留在文中的精华即可。文中有少许bug,亦摘录在此。本文专注编程语言部分,包括第五章到第九章的内容第五章 语言细节原创 2014-08-06 00:44:42 · 5930 阅读 · 1 评论 -
《剑指offer》解题笔记
《剑指offer》解题笔记《剑指offer》共50题,这两周使用C++花时间做了一遍,谨在此把一些很巧妙的方法、写代码遇到的难点、易犯错的细节等做一个简单的标注,但不会太过详细,具体算法还是请参考书本。做的比较急,代码还有很多不完善的地方,如有错误,欢迎改正,地址为:github:sword_of_offer。可以使用git clone https://github.com/heL原创 2014-07-22 08:42:31 · 8000 阅读 · 2 评论 -
阅读《C陷阱与缺陷》的知识增量
看完《C陷阱与缺陷》,忍不住要重新翻一下,记录一下与自己的惯性思维不符合的地方。记录的是知识的增量,是这几天的流量,而不是存量。这本书是在ASCI C/C89订制之前写的,有些地方有疏漏。第一章 词法陷阱1.3 C语言中解析符号时使用贪心策略,如x+++++y将被解析为x++ ++ +y,并编译出错。1.5 单引号引起的一个字符代表一个对应的整数,对于采用ASCII字符集的编译原创 2014-06-30 02:56:40 · 2641 阅读 · 7 评论 -
C++11新特性
C++11新特性C++11已经推出三年了(2011),编译器GCC4.7、Clang3.1在2012年已经逐渐完善,VS2013也已经支持相关特性,GCC4.8.1支持全部特性。不过新特性似乎在工业界并未得到太多应用,可能出于兼容性和稳定性的考虑吧。推出的新特性还是相当的丰富,看下面这张图就知道了。我仅仅在这里提一下相对比较容易应用的部分,包括语法上的一些扩展以及改进,lambda表达原创 2014-05-18 10:01:11 · 5016 阅读 · 3 评论 -
不使用临时变量的swap再思考 -- 六种解法
不使用临时变量的swap一道经典的面试题如下:两个int型变量a和b,不使用临时变量,交换它们的值。答案相信大家都耳熟能详了:a = a ^ b;b = a ^ b;a = a ^ b;这段程序巧妙的安排运算顺序利用仅有的两个变量实现swap,它相当于这样一段程序:c = a ^ b;b = c ^ b;a = c ^ b;可以发现它的技巧简单的说原创 2014-03-01 04:40:39 · 8642 阅读 · 0 评论 -
北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》
这次作业是在第一次的基础上完成的,主要要求是完成五种武士的封装。这五种武士的特性(相应类的成员变量)不大相同,但可以从同一个基类派生。随着时间变化,生成相应的武士,并输出相关信息。OJ地址为:这里解决方案游戏双方各有一司令部,相应的即为head类的两个对象。每个head对象内部produce函数分别完成武士生成。构建武士对象时采用工厂方法,私有make_warrior方法根据武士名称新建相原创 2014-04-06 18:56:00 · 4495 阅读 · 0 评论 -
OpenSSL的Heartbleed漏洞原理及简单模拟
Heartbleed漏洞自从Heartbleed漏洞曝光以来,网上能看到很多相关的文章,但大部分都是写的云里雾里,本文尝试直观明了的对漏洞原理进行说明及模拟。OpenSSL是SSL协议以及一系列加密算法的开源实现,使用C语言编写。OpenSSL采用Apache开源协议,可以免费用于商业用途,在很多linux发行版和服务器中得到广泛应用。OpenSSL出现漏洞造成的影响是巨大的,Heartb原创 2014-04-15 12:22:39 · 13159 阅读 · 2 评论 -
C++标准基金会推荐:在线C++编译器
C++标准基金会是一个致力于对C++开发者社区提供支持,并促进现代C++标准在所有编译器以及平台上的理解与使用的非盈利性组织,成员包括微软、谷歌、英特尔,ARM,Oracle等公司。点这里进入基金会网站。网站有一篇博客,给出了一个推荐使用的在线编译器链接列表,翻译如下。(我发现这群人很有写广告词的天赋!)许多人没有认识到,很多网站都提供了在线使用C++编译器的功能。对C++11的支持正在迅翻译 2014-03-03 00:57:27 · 4603 阅读 · 0 评论 -
C++自由存储空间:new
new运算符可以建立起生存时间不依赖于作用域的对象,即使在函数返回之后也可以使用。 new建立的对象是“自由存储”,或者说是“堆对象”或“在动态存储中建立”。 使用方法mynode* n=new mynode;//结构体delete n;char* s=new char[length];delete[] s; 一般情况下,如果系统没有提供内存管理,在使用完毕堆对象之后原创 2013-07-16 11:06:59 · 3648 阅读 · 0 评论 -
游戏引擎与C++
游戏引擎与C++参考CppCon 2016: Jason Jurecka “Game engine using STD C++ 11"此presentation主要关注C++11在游戏引擎中的使用游戏引擎的特点不会使用太多STD游戏的历史很久远,且对内存、cpu的使用很苛刻比如对于std::string,操作比较慢,因此更多采用cstring比如std中的模板会造成代码体积膨胀游戏引擎不会使用太多原创 2017-03-22 16:03:40 · 4827 阅读 · 0 评论