自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Item 41: 了解隐式接口和编译期多态

通常显式接口由函数的签名式(函数名称、参数类型、返回类型)构成。例如Widget class: class Widget{ public: Widget(); virtual ~Widget(); virtual std::size_t size() const; virtual void normalize(); void swap( Widget&

2017-03-28 19:41:00 318

原创 Item 48: 认识template元编程

我们在Item 47留下了一个问题,现在再来看一看:template<typename IterT, typename DistT>void advance( IterT& iter, DistT d ){ if( typeid(typename std::iterator_traits<IterT>::iterator_category) == typeid(std::rando

2017-03-28 19:29:45 252

原创 Item 47: 请使用traits class表现类型信息

为了说明traits class的作用,这一节用迭代器做了一个例子。 STL有五种迭代器: (1)Input迭代器只能向前移动,且一次一步,客户只可读取它们所指的东西,而且只能读一次;这一类代表是istream_iterator。 (2)Output迭代器跟Input相似,但是客户只可涂写它们所指的东西,而且只能写一次;这一类代表是ostream_iterator。 (3)Forwa

2017-03-28 19:27:33 357

原创 Item 46: 需要类型转换时请为模板定义非成员函数

我们在Item 24提到过用将Rational的operator*声明为non-member,从而使2*oneHalf得以成功调用该函数。这是在没有template的情况下。Rational和operator*被模板化后会怎样呢?template<typename T>clas Rational{ public: Rational( const T& numerator=0, cons

2017-03-28 19:19:43 229

原创 Item 24: 若所有参数皆需要类型转换,请为此采用non-member函数

这里的non-member函数对应的另一个函数是member函数,member函数暗含着一个this参数,所谓的“若所有参数比需要类型转换,必须采用non-member函数”的原因就在于,member函数暗含的*this参数是转换不了的!例如我们前面提到的operator应用于Rational,假如operator*是Rational的一个member函数:class Rational{ pub

2017-03-28 19:11:59 330

原创 Item 45: 利用成员函数模板接受所有兼容类型(智能指针的部分实现)

真实指针做得很好的一件事是,它支持隐式转换,如下: class Top { ... }; class Middle: public Top{ ... }; class Bottom: public Middle { ... }; Top* pt1 = new Middle; //将Middle*转换为Top* Middle* pt2 = new Bot

2017-03-28 19:05:48 279

原创 Item 43: 学习处理模板化基类内的名称

模板都会编译两次,第一次检查语法,第二次具现化。假如模板有不同参数,则会对每个参数都具现一次。如果参数不确定,则不可能具现,也就不知道它的行为。  一个类模板继承于另一个相同模板参数的基类,派生类使用到基类的成员时,编译器往往会报错该成员未定义。因为在第一次编译的语法检查中,即使知道Derived继承自Base,但其中的T是个template参数,不到Derived被具现化无法确切知道它是什么,而

2017-03-28 18:59:39 264

原创 Item 44:将与参数无关的代码抽离templates

template为每一个模板参数生成一份代码,可能会造成代码膨胀。模板参数分为类型参数和非类型参数,通常非类型参数比较容易造成代码膨胀,例如下面一个例子:template<typename T, std::size_t n>class SquareMatrix{ public: ... void invert(); //求逆矩阵};SquareMatrix<dou

2017-03-28 18:57:47 247

原创 Item 42: 了解typename的双重意义

typename和class的差别

2017-03-28 18:48:06 319

原创 2017年网易有道内推编程题

2017-03-20 12:04:03 301

原创 顺时针打印矩阵

简单说一下思路:打印总共可分为四部,从左往右,从上到下,从右往左,从下到上。执行完这四步后,相当于对原矩阵剥了一层皮,可看成一个新的待打印矩阵。然后重复执行上述四步

2017-03-17 17:54:58 213

原创 二叉树镜像

二叉树镜像

2017-03-17 17:51:05 207

转载 Gaussian Mixture Model(GMM)

事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其中某一个 cluster 了,而 GMM 则给出这些数据点被 assign 到每个 cluster 的概率,又称作 soft assignme

2016-11-12 10:41:51 316

原创 c++强制类型转换

强制转换运算符有几种特定于 C++ 语言的转换运算符。这些运算符用于删除旧式 C 语言转换中的一些多义性和危险继承。这些运算符是:dynamic_cast 用于多态类型的转换。static_cast 用于非多态类型的转换。const_cast 用于删除 const、volatile 和 __unaligned 特性。reinterpret_cast 用于位的简单重新解释。

2016-09-04 09:47:38 306

原创 c++中string和double等数据类型的相互转化

在编程时,经常会遇到不同类型数据间相互转化的问题

2016-06-10 17:54:10 622

原创 Ubuntu15.10 Hadoop伪分布式环境安装

因为课程实验的需要,需要搭建hadoop伪分布式环境,经过了一天的探索,终于成功搭建好了,并整理成文。

2016-05-25 11:07:39 703

原创 essential c++ 练习题(2)

早上起来写了课后习题3.3,进一步熟悉了解map、vector等容器的一些用法。在这道题中需要注意的是,因为题目的需要,将map的value设置为vector < string >。代码部分都有详细注释,应该能看懂

2016-05-15 12:54:18 469

原创 essential c++ 练习题(1)

今天终于把第三章“泛型编程的风格”给看完了,趁着知识点还热乎,做了下课后的习题3.1和3.2,由于这两道题基本类似,所以代码把代码也写到一起去了。/*

2016-05-14 21:55:51 844

原创 essential c++读书笔记(1)

问:给定一个vector以及一个value,输出vector中所有小于该value的值。

2016-05-12 00:35:32 373

原创 c++实现人命币大小写转换

问题是简单的,但完全符合要求还是有点困难的,直接上代码:

2016-04-26 11:18:36 3265

原创 c++引用深入分析

序几天前写过关于引用和指针的区别,当时心里就有一个疑惑,既然都说引用是对象的一个别名,那引用变量到底有没有被分配存储空间。我去Google了一下,发现网上有两种截然不同的看法,一种说是在栈里分配了空间,另一种则是说没有分配空间,仅仅是别名而已。经过几天的看书以及思考,我又有了新的体会,特写此篇。同时也感谢博文《c++引用深入探讨》给我的灵感 http://www.cnblogs.com/winte

2016-03-30 00:40:15 270

原创 关于false aliasing的一些看法

关于aliasing

2016-03-28 23:12:41 286

原创 指针变量和引用变量的区别

关于reference的一些看法

2016-03-26 14:01:06 2774

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除