C++/内存管理/IT面试
文章平均质量分 81
BigBzheng
机器学习、深度学习、数据挖掘、NLP
展开
-
用C++实现快速排序
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采转载 2016-03-31 14:06:05 · 650 阅读 · 0 评论 -
浅谈C++内存管理
一 C++内存管理 1.内存分配方式 在讲解内存分配之前,首先,要了解程序在内存中都有什么区域,然后再详细分析各种分配方式。 1.1 C语言和C++内存分配区 下面的三张图,图1图2是一种比较详细的C语言的内存区域分法。图3是典型的C++内存分布图,简单易懂;以下内存分配图,区别就是图1和2则分为初始化和未初始化静态变量区,图3中是全局变量区。转载 2016-03-19 14:54:06 · 359 阅读 · 0 评论 -
为什么不能把构造函数声明为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。 2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数转载 2016-03-19 14:56:50 · 854 阅读 · 0 评论 -
浅谈C++类的继承与派生的关系
一、基本概念 1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 2、派生类的声明: class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n { 派生类成员声明; }; 3、一个派生类可以同时有多个基类,转载 2016-03-20 17:22:53 · 964 阅读 · 0 评论 -
Stanford机器学习-- 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
什么是逻辑回归? Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。 这一家族中的模型形式基本上都差不多,不同的就是因变量不同。 如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归;转载 2016-04-05 23:26:24 · 5750 阅读 · 0 评论 -
C++面试
一、指针和引用的区别: 1、初始化要求不同:引用在创建的时候必须进行初始化,也就是说必须引用到一个有效的对象;而指针在定义的时候可以不必初始化,也可以在后面的任何地方重新赋值(不是int const*p) 2、可修改性不同:引用一旦被初始化指向某一个对象后,他就不能改变了,也就是说不能指向其他对象的引用;而指针在任何时候都可以指向另一个对象。 3、不存在NULL引用:引用不能指向空的引用,它原创 2016-12-05 11:36:14 · 876 阅读 · 0 评论