自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Python 容器用法整理

本文整理几种基本容器:列表、元组、字典和集合的用法和collections中几种已经预先实现的容器数据结构:namedtuple(),双向链表deque,ChainMap,Counter,OrderedDict,defaultdict。其中,deque是一个双向链表的结构,namedtuple是tuple的拓展,ChainMap,Counter,OrderedDict,defaultdi...

2017-03-01 15:42:00 133

转载 C/C++中浮点数格式学习——以IEEE75432位单精度为例

这是浮点数的通常表示形式,在IEEE754中,单精度浮点数有如下形式:32位单精度 单精度二进制小数,使用32个比特存储。 1823位长SExpFraction3130至23偏正值(实际的指数大小+127)22至0位编号(从右边开始为0)S为符号位,Exp为指数字,Fraction为有效数字。 指数部分即使用所谓的偏正值形式表示,偏正值为实际的...

2016-10-12 15:14:00 1018

转载 关于C/C++中的位运算技巧

本篇文章讲述在学习CSAPP位运算LAB时的一些心得。移位运算的小技巧C/C++对于移位运算具有不同的策略,对于无符号数,左右移位为逻辑移位,也就是直接移位;对于有符号数,采用算术移位的方式,即左移仍为直接移位,右移时新产生的位用符号位补足。这种设计的目的是保证右移永远代表除以二,在不考虑溢出的情况下,左移永远代表乘以二;这里涉及到的一个规律是,二进制负数的左侧实际上有无数个1;...

2016-10-12 11:17:00 329

转载 [GeekBand] C++11~14

一、关键字decltype 由对象得到对象的数据类型,例如 Complexa(1,2); decltype(a)b(3,4); declare type是让编译器去找到它的类型。 Decltype甚至允许你使用在函数被调用时才确定的数据类型,例如: template<classT1,class...

2016-09-21 14:23:00 169

转载 [GeekBand] 探讨C++新标准之新语法——C++ 11~14

一、 可变参数模板(Variadic Templates)在C++11中,出现了参数数目可变的模板,这部分在之前C++高级编程的时候就有学习到。其实,在C中就有类似的设定。最常用的printf(),就是一个采用了一个…类型的可变参数。…类型的参数代表是一个参数组。intsumi(intc,...){va_listap; ...

2016-09-19 18:02:00 237

转载 [GeekBand] 面向对象的设计模式(C++)(2)

本篇笔记紧接上篇,继续学习设计模式。4. 对象创建类设计模式通过对象创建模式绕开new,来避免对象创建(new)过程中所导致的紧耦合,从而支持对象创建的稳定。它是接口抽象之后的第一步工作。4.1 Factory Method(工厂方法) 4.1.1 应用场景在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。4.1.2 定义...

2016-09-06 18:28:00 137

转载 [GeekBand] 面向对象的设计模式(C++)(1)

一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 这样,你就能一次又一次地使用该方案而不必做重复劳动。0. 从面向对象谈起底层思维与抽象思维:底层思维要求程序员"向下"思考,去把握机器底层,从微观理解对象构造。这就包含了我们之前所学习的C++基本语法,封装,继承,多态这三大机制以及编译原理的相关内容。抽象思维要求程序员"向上"思考,考虑如...

2016-09-02 16:47:00 296

转载 [GeekBand] STL与泛型编程(3)

本篇文章主要介绍泛型算法中的变易、排序、数值算法。一、 变易算法所谓变易算法是指那些改变容器中的对象的操作。1.1 copy组template <class InputIterator, class OutputIterator> OutputIterator copy ...

2016-09-01 11:42:00 100

转载 [GeekBand] STL与泛型编程(2)

本篇文章在上一篇文章的基础上进一步介绍一些常用的容器以及STL的一些深入知识。一、 Stack和Queue栈和队列是非常常用的两种数据结构,由deque适配而来。关于数据结构的知识这里就不在介绍了,仅介绍STL中的成员方法。stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。访问栈顶,如例:s....

2016-08-23 00:48:00 115

转载 [GeekBand] STL与泛型编程(1)

在C++语法的学习过程中,我们已经对模板有了基本的了解。泛型编程就是以模板为工具的、泛化的编程思想。本篇文章介绍了一些在之前的文章中没有涉及到的一些模板知识、泛型编程知识和几种容器。关于模板的一些重复知识在这里就不再进行赘述。一、关于模板的知识点补充1. 函数模板的参数推导与显式指定通常情况下,我们一般采用参数的自动推导方式去使用函数模板。在自动推导时,为了确保推导的正...

2016-08-14 12:37:00 96

转载 [GeekBand]C++高级编程技术(2)

本篇笔记主要分为两个主要部分,第一部分关于对象模型,第二部分是关于new和delete的更加深入的学习。 一、对象模型关于vptr(虚指针)和vtbl(虚函数表)只要用到了虚函数,对象中就会多一个指向虚函数表的虚指针。在32位环境下,将占4Bytes的空间。 在vtbl中,每一项都是指向自己类应当调用的虚函数的函数指针。 这里提一下,如果父类...

2016-08-05 16:54:00 152

转载 [GeekBand] C++ 高级编程技术 (1)

一、类型转换class Fraction {public: explicit Fraction(int num, int den=1) : m_numerator(num), m_denominator(den) { cout << m_numerator << ' ' << m_denominator &l...

2016-08-05 11:26:00 166

转载 C++对象模型与内存位对齐的简单分析(GNU GCC&VS2015编译器)

以Fruit和Apple为例进行分析: Fruit和Apple的定义如下: 通过在两种编译环境下的测试(GNU GCC & VS2015),可以发现这两种编译器的对象模型是一样的,如下图所示: Apple是Fruit的子类,此为两级的单链继承结构。在Apple和Fruit对象内部,均遵循以下原则: 对象中的第一个成员是指向虚表的虚指针; 对象是按照...

2016-08-04 12:07:00 115

转载 [GeekBand] C++学习笔记(2)——BigThree、OOP

本篇笔记主要分为三个部分,第一部分是以String类为例的基于对象的编程,重点在于构造与析构、拷贝构造函数、拷贝赋值函数三个重要函数。这一部分与笔记(1)中的内容结合起来就是基于对象编程的主要内容。第二部分是在掌握了基于对象编程的基础上的面向对象编程(OOP)学习,讲解了类之间的组合、继承、委托关系。最后一部分则是一些关于面向对象编程的一点补充,包括内存空间、生命周期、new和de...

2016-07-31 22:39:00 145

转载 [GeekBand] C++学习笔记(1)——以复数类为例

本篇笔记以复数类(不含指针的类)为例进行面向对象的学习=========================================================复数类的声明: 1 class complex 2 { 3 public: 4 complex (double r = 0, double i = 0): re (...

2016-07-19 21:07:00 108

空空如也

空空如也

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

TA关注的人

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