c/c++
HN_gsf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序运行的具体步骤总结
1预处理(加载一些头文件、宏替换) 预处理器:将#include 包含的文件内容插入该命令处,检查全文处理#define宏定义,处理条件编译命令#if #endif 将不需要的code屏蔽掉,处理完毕后生成修改后的源代码hello.i.2编译(包括汇编和生成机器两部分,最终生成目标文件 .o) 编译器:词法分析语法分析,生成一条条的汇编语句如mov ax,bx,相当于是优原创 2016-01-12 10:10:19 · 3141 阅读 · 0 评论 -
STL之deque容器
deque容器:应该是比vector和list要复杂得多的容器了,它与vector的区别主要有两点:1)它类似于vector容器的连续,但是又不是完全连续,它利用一个中控单元实现假象的连续,中控单元中的每一个元素都管理者一个缓冲区(其实就是一个固定大小的数组);2)但是在vector中当空间不足时,是需要重新分配一个新的空间,然后将现有的元素移动过去,然后销毁原来的空间,这个在dequ原创 2016-08-15 21:20:46 · 409 阅读 · 0 评论 -
STL之list容器
list容器list容器相比于vector最大的优点是:不浪费空间;每次向容器中插入一个元素就分配一个空间,删除一个元素就会销毁一个空间(包括erase,remove,clear);因为list是链表形式,所以它的迭代器不可以使用iter+n操作来跳过n个元素(这个只有vector和deque可以实现);同时list容器也没有【】操作符,cout迭代器支持的原创 2016-08-15 21:17:51 · 378 阅读 · 0 评论 -
STL之vector容器
vector容器是一种类似于数组的容器,主要差别是vector可以实现自增长;在对于vector容器调用resize函数时,形式为resize(N,val),STL会先判断当前的元素size个数是否大于要调整的大小N,如果大于,则直接将大于N的那部分元素擦除(调用erase函数),capacity不变;如果小于,则会在当前的最后一个元素后边添加”N-size“个val值,这时capacit原创 2016-08-15 21:16:16 · 501 阅读 · 0 评论 -
STL之AVL树
关联式容器之所以说是关联式容器,每笔数据都有一个键值和一个实值,当元素插入关联式容器时,容器会按照键值大小,依据特定规则(set,multiset,map,multimap是红黑书,hash是hash表)将元素放在特定位置;所以关联式容器就不会有push_back( ) pop_back( ) push_front( ) pop_front( )等操作;首先了解一下树的深原创 2016-08-16 19:07:56 · 1849 阅读 · 0 评论 -
STL之hashtable
hash表的概述在平衡树中已经实现了具有对数时间表现的红黑树,而哈希表则是尝试以一种具有常数时间的表现的数据结构;哈希表主要是通过将大数映射到小数的方法进行,但是哈希函数的存在也带来了一些问题;因为hash函数的存在,hashtable总体有三种形式:线性探测,二次探测和开链法;1)线性探测,hash函数计算出哈希值为H,当空格H已经有元素占用,那么就执行H+i,i,1,2原创 2016-08-16 19:17:18 · 588 阅读 · 0 评论 -
strcpy函数的实现
strcpy函数实现将源地址的字符串,拷贝到目的地址,并且返回指向目的地址的指针;原型为:char *strcpy(char *dst, const char *src);一般我们会比较容易的实现,而不考虑内存重叠;char* strcpy(char* dest,const char* src)//注意src参数有const限定符,防止被修改{ assert(dst != NULL &原创 2016-08-20 16:04:58 · 589 阅读 · 0 评论
分享