C++
Hunterstromrage
这个作者很懒,什么都没留下…
展开
-
用C++实现一个队列
队列队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的特点:先进先出。队列中有两个值,一个是front去记录队头的位置,另一个是rear去记录队尾的位置。在实际应用时,由于数组队列的缺点是由于一端插入一端删...原创 2019-03-20 20:54:36 · 10396 阅读 · 3 评论 -
用C++实现栈
首先,我们先了解一下什么是栈。栈是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。它具有先进后出,后进先出的特点。栈的存储方式有两种,一种是顺序栈,另一种是链式栈。顺序栈:顺序栈的存储结构是利用一组地址连续的存储单元依次存放从栈底到栈顶的数据元素,同时附设指针top是栈顶元素在顺序栈中的位置。栈顶指针top的初始值通常设置为-1.链式栈:链式栈是一种数据存储结...原创 2019-03-18 22:20:18 · 525 阅读 · 0 评论 -
shared_ptr智能指针
智能指针是一个行为类似指针的对象。我们在使用堆内存时,都需要及时地进行释放,避免造成内存泄漏。但我们偶尔也会忘记将其释放掉,从而造成内存泄漏。并且,在释放的时候,我们可能对某一个指针进行了重复释放,导致程序崩溃的问题。为了能够解决这些问题,从而有了智能指针的设计。智能指针一共有四种,分别是shared_ptr、unique_ptr、weak_ptr、auto_ptr。auto_ptr是C++9...原创 2019-04-26 15:15:52 · 135 阅读 · 0 评论 -
C和C++的区别
1.内联函数常规函数在调用的时候,会使程序跳到另一个地址(常规函数的地址),并在函数结束的时候返回。如果在程序内部对常规函数进行多次调用,则会造成较大的开销。宏函数没有栈帧的开销,在预编译期的时候,宏函数就被替换为相应的代码。虽然能够进行代码的替换,但是并不会进行类型的检查,也不可以进行调试。为了解决以上问题,C++提供了内联函数。需要注意的是内联函数是对编译器进行的建议,编译器会根据具体...原创 2019-04-24 23:19:53 · 159 阅读 · 0 评论