
c++
IT_Bonnie
这个作者很懒,什么都没留下…
展开
-
new/delete与malloc/free的区别
new和delete是c++中动态申请内存和释放内存的两个关键字,而malloc和free是c中的两个申请空间和释放空间的两个函数。两者有什么区别呢? 一、首先大家知道什么是堆么?什么是栈么? 堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外的...原创 2019-07-23 20:45:05 · 241 阅读 · 0 评论 -
迭代器失效
迭代器(游标)是一个奇特的东西,它是一个指针,用来指向STL容器中的元素,也可以指向其他的元素,其是提供一种方法访问一个容器,比如说vector、list、map、deque等容器。 在我们的日常生活中,当使用它时,大家一不小心就会犯一个错误,那就是使用中导致迭代器会失效。今天我们主要说说迭代器失效的几种情况和解决方法。一、对于顺序容器vector、deque、a...原创 2019-07-21 17:01:17 · 259 阅读 · 0 评论 -
迭代器的功能分类与辅助函数
一、功能分类不同容器的迭代器,其功能强弱有所不同。容器的迭代器的功能强弱,决定了该容器是否支持 STL 中的某种算法。例如,排序算法需要通过随机访问迭代器来访问容器中的元素,因此有的容器就不支持排序算法。常用的迭代器按功能强弱分为输入、输出、正向、双向、随机访问五种,这里只介绍常用的三种。1) 正向迭代器。假设 p 是一个正向迭代器,则 p 支持以下操作:++p,p++,*p。此外,两...原创 2019-07-19 21:04:03 · 251 阅读 · 0 评论 -
初始迭代器
一、介绍迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。二、作用要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,...原创 2019-07-19 21:04:39 · 253 阅读 · 0 评论 -
函数的堆栈调用
一、汇编分为两种:inter x86 ==> window环境下(我们这次主要考虑此环境下) AT&T ==> linux环境下二、汇编指令想要看懂汇编,我们首先要了解这几个简单的指令1.mov 赋值例如:mov, dword ptr[ebp(栈底指针)-4(偏移量)] (位置), 0ah(值);2.lea 移地址例如:lea,eax ,[eb...原创 2018-12-05 23:55:47 · 270 阅读 · 0 评论