自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 python getattr获取对象属性

getattr是一个很强大的功能,它能够获取任何对象的任何属性,包括方法。这样一来我们就可以通过getattr来动态的决定使用对象的哪个属性,或者方法。甚至用它还可以获取只有在运行才知道的属性。如,>>> li = [1,2,3,4]>>> getattr(li, 'append')(5)>>> li[1, 2, 3, 4, 5]    以上通过getattr函数获取了lis

2015-11-30 16:04:59 1941

翻译 python函数装饰器(decorators)

原文出处:http://thecodeship.com/patterns/guide-to-python-function-decorators/  在本文中我们主要介绍什么是函数装饰器?如何使用它?1、关于函数我们需要知道这些    在正式进入装饰器之前,我们需要知道python中函数都可以干嘛。    可以将函数赋给变量:def greet(name): ret

2015-11-29 20:17:38 670

原创 python操作符重载

二元运算符特殊方法+__add__,__radd__-__sub__,__rsub__*__mul__,__rmul__/__div__,__rdiv__,__truediv__,__rtruediv__//__floordiv__,__rfloordiv__%__mod__,__rmod__

2015-11-29 19:11:42 1747

原创 python模块

本文主要介绍一些python module的一些有用的用法。1. 使用_X和__all__    在引用模块时,有两种方法,一种是"import ...",另外一种是"from ... import ...".在使用后者时,有时因为 引用的名称较多,我们会选择”from ... import *",即将模块中的所有变量、函数及类全部导入到当前模块中。这样有时会造成命名空间污染,为了减小因“

2015-11-29 15:50:12 536

原创 mysql支持的数据类型简介

每张数据表至少有一个数据列,每个数据列必须有一个数据类型。本文说一下mysql支持的数据类型。1. 整数(xxxINT)    整数包括正数和负数,但如果给INT数据列定义了UNSIGNED,则只包含正数。对于整数又包含如下几种类型:    TYNYINT、SMALLINT、MEDIUMINT、INT、BIGINT,它们分别为8、16、24、32、64位整数。另外mysql还有一个类型

2015-11-29 13:12:55 1663

原创 mysql数据表类型

创建mysal表时可以设置数据表的类型,这种做法在其他数据库中比较少见。mysql支持多种类型数据表,它们有各自的特点和属性,其中最重要的3种类型是:MyISAM, InnoDB, HEAP.如果在创建表时没有设置表类型,mysql会根据配置文件中的default-table-type选项来在MyISAM和InnoDB之间做出选择。    本文对mysql支持的数据表类型做个简单的介绍。1

2015-11-29 12:11:51 981

原创 利用putty在windows上通过脚本在远程Linux机器执行指令

一、前言    借用百度百科关于putty的描述:PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多第三方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。PuTTY为一开放源代码软件,主要由Simo

2015-11-25 15:31:22 23757

原创 用boost::tokenizer分割字符串

说明:本文是boost::tokenizer类的整理,原文出处为boost的document,此处仅作学习笔记之用。1、boost::tokenizerboost::tokenizer提供了一种灵活、易用的方式来将一个字符串分解为一个字符串列表。这是个模板类,类的声明为:template < class TokenizerFunc = char_delimiters

2015-11-23 18:08:36 3115

原创 std::mem_fun vs std::mem_fn, std::bind1st/std::bind2nd vs std::bind

1.mem_fun vs mem_fn在C++ 11之前,当需要使用STL算法对容器中的对象一次调用成员函数时,我们需要使用到mem_fun或者mem_fun_ref,至于mem_fun和mem_fun_ref之间的选择根据容器中存储的对象是对象指针还是对象本身来选择,其中mem_fun针对对象本身,而mem_fun_ref则针对对象本身。例如,class T{pu

2015-11-23 15:26:02 2272

原创 c++ error 2064: term does not evaluate to a function taking 1 arguments解决方法

首先来看一个简单的示例:class T{public: T() = default; ~T() = default; int convertToInt(double x) { return ceil(x); } void doSomething() { vector vecD{ 2.5, 3.0

2015-11-23 12:45:57 10595

转载 jsoncpp使用方法

一、摘要    JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON。关于 JSON更具体的信息,可参见 JSON 官网:http://www.json

2015-11-23 09:35:39 794

原创 python模块导入过程

在python中,当我们需要在一个模块中引用另一个模块中的内容时,我们需要通过将需要引用的模块import当前模块中来。对于不熟悉python的人来说,他们可能会认为python中的import与C语言中的#include,或者是Java中的import是一样的。但其实它们之间是有区别的,在python中,import一个模块不仅仅是将另外一个文件中的文本插入到当前文件中。实际上,import是在

2015-11-23 08:54:12 2693

原创 python中的map、filter、reduce函数

python中有几个常用的函数工具,它们包括map、filter、reduce,本文主要讲解这3个函数的用法。1.map函数首先看一下map函数的帮助文档:>>> help(map)Help on class map in module builtins:class map(object) |  map(func, *iterables) --> map o

2015-11-23 08:53:24 762

原创 python参数传递那些事

一、前言在python中,函数参数的定义和传递有以下几种方式:语法意义def func(name)普通参数,可以根据位置匹配,也可以根据key来匹配def func(name=value)默认参数,当参数没有传递时,使用默认值def func(*iteratable)将所

2015-11-23 08:52:31 6367

原创 python使用pickle序列化对象至文件

pickle模块用于将内存中的python对象序列化成字节流,并可以写入任何类似文件对象中;它也可以根据序列化的字节流进行反序列化,将字节流还原为内存中的对象。pickle使用dump方法将内存对象序列化:import pickleli = list(range(1,3))dbfile = open('pickle_list', 'wb')    #必须以2进制打开文件,否

2015-11-23 08:51:51 3200 1

原创 python内置数据类型

python内置数据类型中Dictionary、List、Tuple这三种是非常常用的,本章对着三种内置数据类型进行简单介绍。1、Dictionary介绍1.1 定义dictionary对象Dictionary即字典,它定义了键值对的一一对应关系,实际上它是一个哈希表。如>>> d = {'server':'localhost','port':3306}>>> d{'por

2015-11-23 08:50:46 628

原创 pImp机制--隐藏实现减小头文件依赖

pImp是private implemention的缩写。在C++中,当需要引用其他头文件中定义的类、函数、变量时,需要在应用前将需要的头文件包含到当前的文件中。如,    //头文件"A.h" #pragma once class A { ... } //头文件"B.h" #pragma once #i

2015-11-19 10:08:34 1864

原创 RAII(Resource Acquisition Is Initialization资源获取即初始化 )思想

一、定义    RAII,Resouce Acquisition Is Initialization,翻译成中文的意思就是资源获取即初始化,RAII主要用于保证申请的资源得到正确的释放。最初由Bjarne Stroustrup提出,为了保证资源能够正确的得到释放,RAII原则是所有的资源都必须有管理对象,而资源的申请操作在管理对象的构造函数中进行,而资源的回收则在管理对象的析构函数中进行。

2015-11-17 15:49:14 2259

原创 不用任何操作符实现两个正整数相加

首先,既然不能够用操作符,那我们只能使用位操作来进行。对于位操作有&、|、^、>这5种操作。那问题是如何能够用这3种操作来实现两个数据的相加呢?在具体操作前,我们先来看看10进制数的相加过程,比如对于“283+969”这个加法操作,一般是从低位往高位进行操作,并且如果两个数字加起来超过10了,则需要进1。那么其实这个操作可以分为三步进行:1.不考虑进为,对每个对应位上的数据直接相加

2015-11-16 09:55:06 711

原创 明白volatile的意义

在C++编程中,很少会用到volatile变量,所以很多人并不清楚volatile变量的意义。其实volatile关键字是用于告诉编译器,它所声明的变量的内存位置是一块特殊内存,而非普通内存。而何为普通内存呢?让我们来看一下以下代码:int x = 10;int y = x;y = x;对于以上代码,其实第二次”y = x;”的调用是多余,编译器实际上很有可能会将这段代码进行优

2015-11-16 09:52:07 836

原创 在C++中使用openmp进行多线程编程

声明:本文是基于Joel Yliluoma写的Guid into OpenMP:Easy multithreading programming for C++而写的,基本是按照自己的理解,用自己语言组织的。其中大部分例子依然用原来文章的例子。前言多线程在实际的编程中的重要性不言而喻。对于C++而言,当我们需要使用多线程时,可以使用boost::thread库或者自从C++ 11开始

2015-11-13 15:53:40 38077 8

原创 遇见gtest--函数参数化测试

1、前言      有时为了完整的测试一个函数的正确性,我们需要测试给定各种不同输入的情况下,函数的输出是否正确。最直接的方法就是我们手动去给不同输入,然后测试输出是否正确。但是这种方式工作量大,并且都是重复性,无意义的操作。为此,gtest中提供了参数化的测试。2、参数化测试使用方法    要使用参数化测试,我们需要创建一个子类继承testing::TestWithParam

2015-11-12 09:30:58 5908

原创 vector、map还是unordered_map?

一、引言   当我们需要使用键值对的情况时,通常我们会使用map或者unordered_map。其中map底层是采用红黑树实现的,它的查询复杂度是O(lgn);unordered_map实际上是hash_map的实现,理论上它的查询复杂度是O(1)的。那么当我们需要使用键值对结构时,我们是否就一定需要使用它们,或者说它们就一定是最好的选择呢? 答案是否定的,实际上我们可以使

2015-11-11 15:13:34 6199 4

原创 boost::barrier同步原理

boost::barrier是多线程的同步点,构造函数会要求传递一个数字,表示需要同步多少个线程。只有指定个数的线程到达这个点之后,程序才会继续往下走,否则会阻塞。其实barrier的同步原理很简单。要明白它的同步原理,我们首先来看barrier的源码:class barrier { static inline unsigned int check_counter(unsign

2015-11-04 21:25:04 3658

原创 遇见gtest--事件

1、前言    在单元测试中,我们经常需要在某个测试套件、测试用例或者整个测试运行之前进行前置条件设置及检查,或者运行之后对运行结果进行校验等操作。在gtest中,称之为事件机制。gtest将事件按照作用的范围不同进行划分,从大到小总共分为3个层次:    1)整个测试层面,即在测试工程开始前和结束后进行;    2)测试套件层面,即在某个测试套件开始前和结束后进行;    3)测

2015-11-02 20:52:44 2753

模式识别与机器学习

机器学习与人工智能方向很经典的入门书籍,本书从最基本的开始,循序渐进的介绍了模式识别和机器学习的基础知识和一些经典算法

2011-12-11

计算理论导引

计算理论的经典教材,里面详细介绍了图灵机的基本概念,以及有关算法复杂度的概念

2011-12-11

新编c语言大全(适合初学者)

一本c语言教程,适合初学者。如果你想学习c语言,这是一本不错的电子书,希望能给您带来帮助

2011-03-12

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

TA关注的人

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