- 博客(33)
- 资源 (3)
- 收藏
- 关注
转载 static_cast、dynamic_cast、const_cast和reinterpret_cast总结
static_cast、dynamic_cast、const_cast和reinterpret_cast总结2013-12-28 分类:C++ / 基础知识 阅读(666)评论(5) 前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代
2016-01-28 10:00:25
433
转载 RTTI
通过RTTI,能够通过基类的指针或引用来检索其所指对象的实际类型。c++通过下面两个操作符提供RTTI。(1)typeid:返回指针或引用所指对象的实际类型。(2)dynamic_cast:将基类类型的指针或引用安全的转换为派生类型的指针或引用。对于带虚函数的类,在运行时执行RTTI操作符,返回动态类型信息;对于其他类型,在编译时执行RTTI,返回静态类型信息。当具
2016-01-28 09:47:23
356
转载 虚函数表的内存存放,多种继承关系下
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是
2016-01-27 12:57:38
456
转载 C++ 多继承和虚继承的内存布局
在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的不太明确的结论(尤其是,关于向下转型指针,使用指向指针的指针,还有虚拟基类的构造方法的调用命令)。 如果你了解多重继承是如何实现的,你就能预见到这些结论并运用到你的代码中。而且,如果你关心性能,理解虚拟继承的开销也是非常
2016-01-27 12:23:03
590
原创 C++虚函数和虚继承浅析
C++虚函数和虚继承浅析本文针对C++里的虚函数,虚继承表现和原理进行一些简单分析,有不对的地方请指出。下面都是以VC2008编译器对这两种机制内部实现为例。虚函数 一下是百度百科对于虚函数的解释:定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数[1]语法:virtual 函数返回类型 函数名(参数表) { 函数体 }
2016-01-27 12:12:13
299
转载 保护继承
protected 与 public 和 private 一样是用来声明成员的访问权限的。由protected声明的成员称为“受保护的成员”,或简称“保护成员”。从类的用户角度来看,保护成员等价于私有成员。但有一点与私有成员不同,保护成员可以被派生类的成员函数引用。如果基类声明了私有成员,那么任何派生类都是不能访问它们的,若希望在派生类中能访问它们,应当把它们声明为保护成员。如果在一个类中
2016-01-27 10:36:38
664
转载 c++类的继承
一、基本概念1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 2、派生类的声明:class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n{ 派生类成员声明;}; 3、一个派生类可以同时有多个基类,
2016-01-26 23:34:12
327
转载 迭代器 反向迭代器
C++ primer (中文版第四版)第273页9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一
2016-01-26 09:14:41
478
转载 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,
写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(overload)和覆盖(override)搞错! 我们先来看一些代码及其编译结果。 实例一: #include "stdafx.h"
2016-01-25 22:21:38
813
转载 Leetcode algorithms 第 65 题:Valid Number。
题目Validate if a given string is numeric.Some examples:“0″ => true” 0.1 ” => true“abc” => false“1 a” => false“2e10″ => trueNote: It is intended for the problem statement to be amb
2016-01-22 11:39:43
1168
转载 ZigZag排列问题与经典笔试面试题目解析
ZigZag排列问题与经典笔试面试题目解析标签: 数据结构算法C++经典面试问题求职应聘2015-12-23 17:58 4737人阅读 评论(1) 收藏 举报 分类:数据结构与算法(12) 版权声明:本文为博主原创文章,未经博主允许不得转载。一、图像压缩编码中的Z字排序JPEG(Joint Photographi
2016-01-19 16:08:18
1030
转载 c++智能指针
导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到智能指针的影子。这说明智能指针不仅是面试官爱问的题材,
2016-01-07 10:26:05
301
转载 delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)
2016-01-07 09:49:08
296
转载 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a p
2016-01-05 14:07:50
1490
原创 拨钟问题的若干解法
问题描述 参考http://blog.sina.com.cn/s/blog_b1e4dca501013z88.html有9个时钟,排成一个3*3的矩阵。现在需要用最少的移动,将9个时钟的指针都拨到12点的位置。共允许有9种不同的移动。如右表所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90度。移动 影响的时钟1 ABDE2 ABC3 BCEF4 ADG5 BDEF
2015-12-23 11:26:29
8067
1
原创 八皇后问题
字符串全排列扩展----八皇后问题本篇博客的描述部分得益于http://blog.youkuaiyun.com/hackbuteer1/article/details/7462447 代码和原文有很大不同 题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有
2015-12-16 15:41:29
418
转载 字符串的全排列和组合算法
http://blog.youkuaiyun.com/hackbuteer1/article/details/7462447一、字符串的排列用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一、全排列的递归实现为方便起见,用123来示例下。123
2015-12-16 11:29:14
377
原创 编程之法:字符串包含 位运算法
简单的说就是建立hash表 后来的字符串与hash表与操作 即可进行对比#include "stdafx.h"#include #include #include using namespace std;bool StringContain(string &a,string &b);int main(){string a="ABCD";string b="B
2015-12-14 10:39:41
490
原创 快慢指针
快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。1. 快慢指针判断链表是否为循环链表让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。如果 快指针追上慢指针,则表示出现了循环。fast=slow=head;
2015-12-13 13:32:19
348
原创 c++中使用基类指针Vector 存放子类对象(0xcccccccc 处未处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突 )
1. c++中允许用基类指针指向子类的对象,先亮出正确写法。#include #include using namespace std;class Base{ public: virtual void print();};class Derived : public Base{ public: virtual void print();};void B
2015-11-22 10:37:34
4919
原创 myeclipse 使用JDBC方法直接访问sql2005
sal2000和sql2005的驱动包不同 需要重新下载 注意看一下1433端口有没有打开 在 sql server配置管理器中设置 com.microsoft.sqlserver.jdbc.SQLServerException: 用户 '' 登录失败。该用户与可信 SQL Server 连接无关联。sql2005的JDBC直接访问貌似不支持windows验证 请输入用户名和密码才能
2015-10-07 17:57:10
330
原创 undefined reference to vtable for
关于QT中undefined reference to vtable for 的问题 网上有一大堆解决方案真正帮到我的是这一篇文章http://blog.sina.com.cn/s/blog_496ad465010007sk.html首先确认是不是 添加Q_OBJECT造成的之后重新执行qmake重新生成解决方案即可
2015-05-04 10:45:24
370
转载 支持向量机SVM(二)
6 拉格朗日对偶(Lagrange duality) 先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题: 目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为 L是等式约束的个数。 然后分别对w和求偏导,使得偏
2014-12-11 16:15:37
373
转载 支持向量机SVM(一)
【转载请注明出处】http://www.cnblogs.com/jerrylead1 简介支持向量机基本上是最好的有监督学习算法了。最开始接触SVM是去年暑假的时候,老师要求交《统计学习理论》的报告,那时去网上下了一份入门教程,里面讲的很通俗,当时只是大致了解了一些相关概念。这次斯坦福提供的学习材料,让我重新学习了一些SVM知识。我看很多正统的讲法都是从VC 维理论和结构风险最小原理出发,
2014-12-11 16:13:49
348
原创 vs2010 头文件注意事项
即使工程中主函数不包含某些头文件,只要添加进工程中的头文件就有可能出现重定义的情况解决方案就是移除不需要的头文件。另:using namespace不要写在头文件里 很容易出现名字空间污染 如果一下用很多可以写在某个函数里 比如 int cx(){ using std::cout; using std::cerr;
2014-12-07 13:44:17
450
原创 pcl运行:Error: "invalid device function" complaining about cuda/tsdf_volume.cu:170
应该是计算能力太低了!换个好点的显卡吧 另外CUDA建议用5.5可以运行下CUDASAMPLE看看是不是装好了
2014-12-07 12:58:57
1420
原创 pcl源码编译 : 错误libboost_thread-vc100-mt-gd-1_51.lib(thread.obj)
将cmake/pcl_find_boost.cmake# Required boost modulesfind_package(Boost 1.40.0 REQUIRED COMPONENTS system filesystem thread date_time iostreams)改为# Required boost modulesfind_package(Boost
2014-12-07 12:57:01
721
原创 pcl源码编译 全过程,主要使用kinfu。
环境简介:win7 64位 vs2010硬件:NVIDIA K4000 计算能力3(kinect fusion要求计算能力 2以上)E3-1230 3.3GHz准备:pcl1.7.2源码 github上下载(有gpu文件夹的)Boost-1.50.0-vs2010-x64.execmake-2.8.12.2-win32-x86.execuda_5.5.
2014-12-07 12:30:30
3904
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人