C++随笔
月光骆驼
好久不更新了,学到了很多都还没总结,todo已经行成递归了
展开
-
c++11:智能指针
智能指针:为什么要使用智能指针?由于C++不支持垃圾自动回收机制,程序员必须手动释放动态申请的空间,否则会发生内存泄漏,这无疑对编程提出了更高的要求。为了解决令人头疼的内存泄漏,STL引入了智能指针。什么是智能指针?智能指针实际上是一个类模板,对普通指针进行了一层封装,模板参数是指针指向的类型,通过重载 -> 和 *两个操作使智能指针的用法和普通指针相同。通过析构函数释放指针...原创 2019-05-18 15:26:50 · 261 阅读 · 0 评论 -
算法:二分查找小结
二分查找总结二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找。二分查找很好写,却很难写对,据统计只有10%的程序员可以写出没有bug的的二分查找代码。出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死循环的情况。下面对二分查找及其变形进行总结:1 最基本的二分查找 publi...原创 2019-05-18 17:23:43 · 317 阅读 · 0 评论 -
c++:四大类型转换
四大类型转换前言dynamic_cast:static_cast:const_cast:reinterpret_cast:总结 前言C语言的类型转换比较自由,但也带来了一些问题,这些问题大多由程序员自行控制和解决。对于庞大的C++语言机制而言,这种简单粗暴的类型转换方式显然是个巨大的负担,因此C++引入4种类型转换运算符,更加严格的限制允许的类型转换,使转换过程更加规范:dyn...转载 2019-06-25 16:48:22 · 1684 阅读 · 0 评论 -
类模板泛化编译错误的问题
问题出现的背景今天在写代码的时候,使用模板泛化,为了让类的代码封装更好,便将类的声明都放在了一个名为 heap.h 的头文件中,将实现的方法写到了 heap.cpp 文件中。代码是一个大顶堆的数据结构。问题说明如下:heap.h#pragma once#include <vector>template <typename T>class heap{...原创 2019-07-01 20:42:08 · 268 阅读 · 0 评论 -
c++:前向声明问题
今天在写http服务器的时候遇到了一个前向声明的问题,我把所有的类都放到了一个“Declear.h”头文件中了,当我使用头文件声明的类时,出错了,具体内容就是这个类不能使用,后来找了半天发现是前向声明的类不能直接拿来用,只能使用他们的引用和指针。看看下面这位大佬的博客吧,非常感谢此人。前向声明...转载 2019-06-28 21:55:50 · 329 阅读 · 0 评论 -
怎么限制一个类的对象实例,只能在"堆"上分配,或者只能在"栈"上分配
原文地址:https://blog.csdn.net/szchtx/article/details/12000867在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种...转载 2019-07-22 16:56:28 · 297 阅读 · 0 评论