自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大鹏

share,communication,improvement

  • 博客(26)
  • 收藏
  • 关注

原创 一年又一年变成大龄程序员

最近一直在对新技术进行尝试,从J2EE,PHP,Android,IOS,python,golang 反复折腾了一两个月。感觉还是对后台数据分析部分感兴趣,自认为对c++还算了解,现在确定尝试从做了4年多的c++后台业务处理转向互联网。从数据挖掘、分析及爬虫做起语言选择python,希望能够坚持,努力!

2013-10-16 14:13:49 539

原创 两种字符串逆序方式

#include #include using namespace std;void swap(char &a, char &b){ a = a^b; b = a^b; a = a^b;}void reverse2(char *s){ int n = strlen(s); for(int i=0; i<n/2; ++i) s

2013-05-03 13:58:57 617

原创 实现一个算法检测字符串是否为唯一字符

bool isUnique1(string s){ bool a[256]; memset(a, 0, sizeof(a)); int len = s.length(); for(int i=0; i<len; ++i) { int v = (int)s[i]; if(a[v]) return false;

2013-05-03 10:23:14 883 1

原创 单链表相关操作代码

#include #include using namespace std;struct node{ int data; // data struct node *next; // link to next};int Length(struct node* head);struct node* BuildOneTwoThree(int iNod

2013-04-25 15:58:53 582

原创 operator << 做为 virtual 重载问题

#include using namespace std;class fig2d{ int dim1; int dim2;public: fig2d(){dim1 = 5,dim2 = 6;} virtual void operator <<(ostream &rsh);};void fig2d::operator <<(ostream &rsh)

2013-04-10 00:00:27 592

原创 理解c++对象模型,子类与父类关系

#include using namespace std;class base{public: int bval; base() { bval = 0; }};class deri:public base{public: int dval; deri(){dval = 1;};};void SomeFunc

2013-04-09 23:22:48 958 1

原创 拷贝构造函数作用测试

#include using namespace std;class sample{public: int *ptr; sample( int i ) { cout << __FUNCTION__<<endl; ptr = new int(i); } /* sample( const sample& s)

2013-04-09 23:02:20 567

原创 冒泡排序、插入排序及快速排序

#include #include #include #include #include using namespace std;// 输出全部vector值void ListAll( const vector& vList ){ vector::const_iterator iter; int iLineCount = 0; for ( ite

2013-04-07 22:14:22 548

转载 详解c/c++函数指针

要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。     我们先来看看下面的一个语句:?1( *( void(*)())0)();     这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕

2013-04-07 22:07:40 559

原创 c++ 设计模式之 单例模式

概念单例模式是确保一个变量只有一个实例,并提供一个全局的角度进行访问.类图示例代码#include using namespace std;class Singleton{public: static Singleton *getInstance(); private: Singleton(){} static Singleton* instanc

2012-07-26 09:47:45 500

原创 c++ 设计模式之 外观模式

概念为一系列子系统提供一个统一的接口.外关模式一个高层次的接口使子系统更加容易的使用.类图示例代码#include // Subsystem 1class SubSystemOne{public: void MethodOne(){ std::cout << "SubSystem 1" << std::endl; };};// Subsystem

2012-07-23 21:40:02 560

原创 c++ 设计模式之 观察者模式

概念观察者模式的目的是在对象之间的定义一对多的依赖关系当一个对象改状态时,所有依赖关系的对象全部收到通知并自动更新.类图示例代码#include #include #include #include #include #include using namespace std ; class Subject; class Observer{

2012-07-23 20:53:31 528

原创 c++ 设计模式之 工厂模式

概念使用工厂的客户根本不知道具体的类.工厂的使用者创建一个基类的对象.但由子类决定实例化哪个.这就允许我们服从子类的实例化,但是调用都不知道哪个对象被创建.类图图片来自源: wiki代码示例#include class Button {public: virtual void paint() = 0;};class OSXButton: publi

2012-07-23 17:39:48 842

原创 c++ 设计模式之 抽象工厂模式

概念:抽象工厂模式提供了一个创建相似或相关相互依赖的对象,而不需要说明其具体的实现.类结构图:图来自: wiki示例代码:#include class Button{public: virtual void paint() = 0;};class WinButton : public Button {public: void pai

2012-07-23 16:52:39 709

翻译 c++ 对象切割示例

概念当一个子类对象通过值传递给基类对象,如foo(Base derived_obj),这个基类的拷贝构造函数将被调用.此时子类的特性将被切割,只有基类相关操作. 也就是说如果我们向上转型如果不用引用或指针,对象将被切割.这是也我们应该传引用而不是传值的原因.示例代码:#include #include using namespace std;class Animal{p

2012-07-23 15:42:23 632

原创 c++ 模板

模板函数模板函数例子如下:#include template const T& min(const T& a, const T& b) { return a < b ? a : b;}int main() { int x = 10, y = 20; long xLong = 100, yLong = 200; int minimum = min(x, y); lon

2012-07-23 14:50:49 462

翻译 c++ 指针操作1

内存泄露与破坏C++的两个主要问题就是内存泄露与损害.内存泄露是指内存审请后没有释放,这种方式导致内存内存浪费最终可能会发生内存不够的错误.内存损坏是发生在程序将数据写在错误的内存位置,重写了那坏内存数据,没有成功更新到其目标位置。这两个问题都和指针相关.虽然指针是一个强大的工具,但也可能是一个魔鬼.如果一个指针指向的内存已经被释放,或它偶而被一个非零的整型或浮点型赋值其会变的非常

2012-07-22 12:03:31 605

原创 C++ 友元函数与友元类

友元函数类的私有数据成员只能被类本身的成员函数访问。然而,这也有一个例外,这个类的友元函数也能访问这个类的私有数据成员.#include using namespace std;class Rectangle { int width, height;public: Rectangle(int w = 1, int h = 1):width(w),height(h){}

2012-07-20 17:33:13 2277

翻译 C++ 异常处理(excepiton)

错误处理我们的程序有时会遇到运行问题,我们必需保护程序能够正常运行。一个程序可能需要更多的内存或是打开一个不存在的文件或是遇到一个不能处理的错误。通常有下面三种方式来进行错误处理:1. 终止程序.2. 返回一个错误码3. 抛出一个异常我们应该避免第一种方式虽然有很多调用 abort()或exit()操作的例子。在2与3之间我们不需要有太多争议哪种方式更好点。我让我通过简单的代码来进行比较:下面是通

2012-07-20 16:44:05 3425

翻译 c++ 静态对象 操作(static)

静态对象是一种从构造开始到程序结束都存在的一种对象.它是独立于栈与堆的。静态存储变量定义在函数外或是用static关键字修饰的变量存放在静态存储区.放在静态存储区的数据在整个程序运行其间持续有效。 那些变量可以依据linkage分为以下三类:l  external linkagel  internal linkagel  no linkage 既然在程序的整个生

2012-07-19 15:43:00 14718 2

翻译 c++ 内存管理

自动内存管理在介绍自动手功内存管理之前,我们先介绍一下自动内存管理。自动内存管理与局部变量相关,当程序执行时看到变量定义时,一个局部变量就开始占用系统内存了。当程序运行出定义局部变量的语句快时系统会自动释放局部变量所占的内存,事实上局部变量占用的是栈空间。向下面的例子一样,程序员经常犯的一个错误就是返回一个无效的指针。一个内存释放后变量立即变的无效了。int * badPointe

2012-07-18 16:49:09 1022

翻译 c++ 二叉树示例

/* Binary Tree */#include #include #include using namespace std;struct Tree{ char data; Tree *left; Tree *right; Tree *parent; };Tree* lookUp(struct Tree *node, char key){ if(node

2012-07-17 16:44:16 538

原创 c++ 单链表的基本操作

#include using namespace std;struct Node { int data; Node* next;};// only for the 1st Nodevoid initNode(struct Node *head,int n){ head->data = n; head->next = NULL;}// apendingvoid add

2012-07-16 10:55:12 634

原创 c++ 类型转换

类型转换操作a = dynamic_cast(p) Try to convert p into a T*. It may return 0a = dynamic_cast(*p) Try to convert *p into a T&. It maythrow bad_cast a = static_cast(p) Convert p into a T if a T c

2012-07-15 20:00:16 472

原创 c++ 数据类型转换(RTTI)

运行时类型实别(RTTI)RTTI 是 Run-time Type Identification 的缩写。RTTI为程序提供了一个标准方式用来在运行时决定对象的类型。也就是说RTTI允许指向基类的对象或引用在运行时恢复到其实际指的子类类弄。通过以下两种方式提供RTTI操作:l  通过typeid操作符,来返回通过指针或引用实际指的对象类型。l  通过dynamic_cast操作符,

2012-07-15 16:08:27 396

原创 c++ (virtual)虚函数

什么是虚函数1.      当我们提到虚函数或虚方法时,我们通常指会指的是在继承或多态的背影下,基类虚函数的行为可以背子类定制。2.      虚函数与非函数的最大区别是,虚函数是在运行时根据调用对象的不同动态邦定的;而非虚数是在编译时就已经决定定由哪个对象调用了,这种行为叫静态绑定。虚函数使用说明1.      非虚函数#include using namespacestd; class

2012-07-15 15:09:22 903

空空如也

空空如也

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

TA关注的人

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