![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 71
是你的甜甜呀
尚在学习中,敬请指教!!!
展开
-
explicit关键字
explicit关键字最近刷题过程中遇到了关于explicit关键字方面的知识,隐式转换有时候会有程序逻辑的问题,还是值得学习下explicit关键字是阻止转换构造函数进行隐式转换的发生当构造函数前没有explicit关键字修饰单参数的构造函数可以做到隐式转换,在上边a2对象的构造过程中只调用构造函数可以看出当构造函数加上explicit关键字后,编译器就会原创 2017-04-20 12:37:27 · 377 阅读 · 0 评论 -
各种排序算法解析
各种排序算法解析 1.插入排序 (1)插入排序 基本思想:假设待排序的记录存放在数组arr[1...n]中。初始时,arr[1]自成一个有序区,无序区为arr[2..n]。从i=2起,至i=n为止,依次将R[i]插入当前有序区,生成含有n个记录的有序区。 需要进行多次的单趟排序 优势:当记录本身有序时,效原创 2017-08-01 19:30:58 · 406 阅读 · 0 评论 -
笔试题--TopK问题
笔试题--TopK问题 CVTE笔试题 题目:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数,并且求出大家最喜欢吃的前k种水果。 这个题目就是典型的TopK问原创 2017-07-31 19:02:39 · 835 阅读 · 0 评论 -
C与C++的常错小细节
C与C++的常错小细节1.fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回。如果返回值是0,则表示是子进程,如果返回值>0,则表示是父进程。在fork()调用处整个父进程空间会原模原样地复制到子进程中,包括指令、变量值、程序调用栈、环境变量、缓冲区等。2.const char *node="ABC"; 指向字符常量的指针 *node的值不原创 2017-07-09 11:57:55 · 427 阅读 · 0 评论 -
复杂链表的构成与复制
复杂链表的构成与复制 复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 复杂链表的结构 typedef struct ComplexNode{ DataType _data ; // 数据 stru原创 2017-07-17 15:54:38 · 424 阅读 · 0 评论 -
二叉树相关面试题--树中两个节点的最低公共祖先
二叉树相关面试题--树中两个节点的最低公共祖先 第一种情况当这棵树为二叉搜索树时 这种情况的处理最为简单,当这棵树是二叉搜索树时,就表明其每个节点的数据都是排序过的,左子树的节点都比根节点小,右子树的节点都比根节点是数据大,我们可以根据两个节点的数值与根节点的数值进行比较来确定范围,采用递归算法来使范围不断的缩小。这种方法的实现也相对比较简单。 主要代码(在处理时要原创 2017-07-28 10:48:19 · 454 阅读 · 0 评论 -
实现C++类中对于前置++,后置++的重载
建立一个复数类,在类中实现构造函数、析构函数、拷贝构造和运算符重载在运算符重载的实现过程中,可以发现,前置++和后置++在实现上有区别由于前置++是先实现++,再进行使用,所以在实现过程中比较简单而后置++需要先使用,再进行++操作在以下程序中,实现了几个默认成员函数和前置++与后置++#include using namespace std;class Compl原创 2017-03-06 18:20:11 · 1122 阅读 · 0 评论 -
C++和C语言的内存管理
在C语言中学到了四个动态内存管理和函数,分别为malloc、calloc、realloc和free函数原型为:void* malloc(size_t _size); void free( void *memblock ); void *calloc( size_t num, size_t原创 2017-03-12 16:10:20 · 426 阅读 · 0 评论 -
C++中的深拷贝和浅拷贝
浅拷贝顾名思义就是只进行简单的拷贝,比如,在拷贝构造函数中,只是进行简单的拷贝并不开辟新的空间比如在这段代码中,可以看出这段代码在拷贝构造时采用了浅拷贝的方法#include #include using namespace std;class Array{private: int* _ptr; size_t _sz;public: Array(siz原创 2017-03-17 13:40:52 · 335 阅读 · 0 评论 -
智能指针
智能指针1、智能指针概念由于C++中没有自动回收内存的机制,程序每次new出来的内存都要通过delete来回收,所以很容易会发生内存泄漏的问题。引入智能指针可以有效的缓解回收内存方面的问题。智能指针实际是存储指向动态分配对象指针的类,定义一个类来封装资源的分配和释放。智能指针要求资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配,同时由析构函数来完成原创 2017-04-19 15:07:52 · 306 阅读 · 0 评论 -
模拟实现定制删除器的SharedPtr
模拟实现定制删除器的SharedPtr上篇博客里介绍了三种智能指针,模拟了三种智能指针的简单实现。这里继续介绍智能指针SharedPtr,利用仿函数定制删除器利用仿函数来解决C++中出现的new 、delete等匹配问题在C++中有关内存处理方面的操作符或函数有 new----------delete malloc-----------f原创 2017-04-19 16:11:53 · 376 阅读 · 0 评论 -
关于C++异常方面的问题
关于C++异常方面的问题异常:当一个函数发现自己无法处理的错误时抛出异常,让函数的调用者直接或间接的处理问题1、传统处理错误的方法:(1)终止程序(2)返回错误码(3)返回合法值,让程序处于某种非法的状态(4)调用一个预先设置的出现错误时调用的函数 ---回调函数2、异常的抛出和捕获(1)异常是通过抛出对象而引发的,该对象的类型决定了应该激活哪个处理代码(原创 2017-04-19 17:46:27 · 401 阅读 · 0 评论 -
链表相关面试题(基础篇)
链表相关面试题(基础篇) 链表是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列节点组成,节点可以在运行时动态生成。每个节点包括存储数据元素的数据域和存储下一个节点地址的指针域两个部分。相比于线性表顺序结构,操作复杂。数据元素的逻辑顺序也是通过链表中的指针链接次序实现的。 线性表的链式存储特点是用一组任意的存储单元存储线性原创 2017-07-24 23:05:42 · 603 阅读 · 0 评论