C/C++
文章平均质量分 79
唐稚骅
这个作者很懒,什么都没留下…
展开
-
Linux编程推荐书籍
Linux编程推荐书籍一览表(转贴)shell 编程《LINUX与UNIX SHELL编程指南》BASH宝典: Advanced Bash Scripting Guide (如果你使用的是 GNU/Debian 系统,可以用 apt-get install abs-guide 安装该文档) BASH Programming - Introdu转载 2015-10-12 15:23:45 · 923 阅读 · 0 评论 -
STL之迭代器失效问题
1 常见的STL容器标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist。slist是一个单向链表非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。几种标准非STL容器,stack、queue和priority原创 2015-07-06 16:44:28 · 745 阅读 · 0 评论 -
STL之关联容器的映射底层
STL的关联容器有set, map, multiset, multimap.用于实现它们的底层容器有划入标准的rb_tree和待加入标准的hashtable.底层容器rb_tree为上层容器提供了一种有序的服务.关键步骤时间复杂度为O(lgN);底层容器hashtable为上层容器提供的是无序的服务,但其关键步骤的时间复杂度为O(1).那么上层容器是怎么映射到底层容器中原创 2015-07-05 23:45:56 · 1029 阅读 · 0 评论 -
STL之rb_tree的find函数
1 通用的search方法STL在实现对特定key值的查找时,并没有采用通用的方法:BRTreeNode * rb_tree_search(RBTreeNode * x, int key){ while(x ! = NULL && x->key != key){ if( x->key > key){ x = x ->left; }else{ x = x->right原创 2015-07-05 20:52:55 · 1456 阅读 · 0 评论 -
STL之heap的make_heap函数
在看侯捷翻译的STL源码剖析时,发现关于heap这一节点错误,特此指出.1 make_heap源码template inline void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last){ __make_heap(__first, __last, __原创 2015-07-04 10:09:43 · 4558 阅读 · 0 评论 -
STL之list的sort函数
list底层数据结构采用的是循环双向链表.同时,list并没采用algorithm提供的内置sort函数,而是自定义了一个sort成员函数.该sort,采用的是一种特殊的归并排序,支持的对大排序数为2^64-1.list的sort函数源码如下:template void list::sort(){ // Do nothing if the list has length 0原创 2015-07-03 17:10:05 · 615 阅读 · 0 评论 -
c++ 重载运算与类型转换
1 基本概念1.2 重载的运算符函数的调用方式1) 非成员函数的调用 operator+为对象data1, data2的非成员函数data1 + data2; ==> operator+(data1 , data2);2) 成员函数的调用 operator+为对象data1的成员函数data1 + data2 ==> d原创 2015-07-02 20:57:54 · 1012 阅读 · 0 评论 -
关于原码,反码,补码和左右移位的若干思考
1.为什么要使用原码,反码,补码1)负数二进制怎么表示?答:在原码中,高位为1就表示负数2)计算机如何实现减法?1-1=?答:对于计算机,逻辑运算应该设计的简单,1-1可以表示为1+(-1),故没有减法,用加法实现减法。1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [1000转载 2015-07-02 15:12:28 · 632 阅读 · 0 评论 -
STL之内存管理
STL的内存管理分为两级第一个级别用于较大内存分配与释放的管理(>128byte), malloc_alloc第二个级别用于小于128byte的内存管理,default_alloc1 diyi原创 2015-07-07 21:42:24 · 646 阅读 · 0 评论 -
C++模板实参推断
1 类型转换与模板实参1)自动转换的只有:const转换, 数组及函数到指针的转换注:不同大小相同元素类型是不同的类型2)相同模板参数名对应的实参类型必须相同3)不同模板参数名对应的实参类型可以不同,但必须兼容2 函数模板的返回值问题函数模板只会对函数参数列表的类型进行推断不会对返回值推断解决方法:1) 显示模板参数注: 显示指定了模板类型参数在类型转换原创 2015-07-08 22:25:19 · 1378 阅读 · 0 评论 -
STL之迭代器
1 迭代器的分类与特点1)input_iterator 只读2)output_iterator 只写 3)forward_iterator 允许写入型算法在这种迭代器区间进行读写操作原创 2015-07-07 19:14:33 · 630 阅读 · 0 评论 -
__attribute__
One of the best (but little known) features of GNU C is the __attribute__ mechanism, which allows a developer to attach characteristics to function declarations to allow the compiler to perform more e转载 2015-04-21 14:56:04 · 420 阅读 · 0 评论 -
对与-128的补码理解
http://blog.chinaunix.net/uid-16249993-id-2750042.html今天看到一个问-128的补码为何就是 1000 0000的贴子.问是如何计算出来?是不是还是按:取相应正数的原码,最高位即符号位,取1,其余各位取反后整个得值 +1?按我的理解(上学时学c语言就是这样理解的,老谭那本书上讲整数的取值范围那段就有)16位int -32转载 2015-04-08 09:00:02 · 4827 阅读 · 0 评论 -
用c实现HASH表创建、插入、查找、删除、打印(欢迎高手指点)【转】
http://blog.csdn.net/zww0815/article/details/6892560[cpp] view plain copy/************************************************************************ 用c实现HASH表创建、插入、查找、删除、打印,实现并不是最完美的,欢迎指正补充!后续转载 2016-04-21 21:35:12 · 1405 阅读 · 0 评论