自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++之Erase-remove惯用法

Erase的返回值是未被删除的第一个元素的iteratorfor ( begin = vec.begin() ; begin != vec.end() ; /* ++begin */ ){if ( 10 == *begin ) { begin = vec.erase( begin ) ; } els

2012-06-17 14:56:36 670

转载 C++之vector使用

第一部分使用入门vector可用于代替C中的数组,或者MFC中的CArray,从许多说明文档或者网上评论,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性。而且vector是STL推荐使用的默认容器,除非你知道你有特殊需要,使用vector不能满足你的需求,例如需要容器在head和tail高效的插入和删除,或者在任何位置高效的删除和插入操作,那么你可能使用deque

2012-06-17 14:51:07 488

转载 C++之异常(exception)

1.简介     异常是由语言提供的运行时刻错误处理的一种方式。提到错误处理,即使不提到异常,你大概也已经有了丰富的经验,但是为了可以清楚的看到异常的好处,我们还是不妨来回顾一下常用的以及不常用的错误处理方式。1.1 常用的错误处理方式返回值。我们常用函数的返回值来标志成功或者失败,甚至是失败的原因。但是这种做法最大的问题是如果调用者不主动检查返回值也是可以被编译器接受的,你也

2012-06-17 14:49:16 614

原创 C++之char , signed char , unsigned char

ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char.而不是像short、int一样只有两种(int默认就是unsigned int).三者都占1个字节(1 byte),因此:signed char取值范围是 -128 到 127(有符号位)unsigned char 取值范围是 0 到 255这个大家都很清楚!!但是char 呢

2012-06-17 14:47:17 478

原创 c++ 之 malloc() 和 calloc()

malloc ()函数原型: extern void *malloc(unsigned int num_bytes);函数描述: 分配长度为num_bytes字节的内存块入口参数: num_bytes    内存块的大小(单位为字节)出口参数: 无(或为空)返回值:    如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。函数说明:不再使用时一定要记得释放,调

2012-06-17 14:43:24 420

原创 C++之 inserter

C++的迭代器适配器中常用的有插入迭代器(Inser Iterator)、流迭代器(Stream Iterator)和逆向迭代器(Reverse Iterator)等!本文主要是介绍插入迭代器(Inser Iterator).下面介绍三种插入迭代器:1. Back Inserter原理:其内部调用push_back()功能:在容器的尾端插入元素限制:只有提供了push_back

2012-06-17 14:36:48 800

原创 C++ 之 Stream Iterator

第二种迭代器适配器就是流迭代器(Stream Iterator).Stream Iterator有两种:istream_iterator和 ostream_iteratoristream_iterator用于从流中读取数据,包括标准输入流istream,文件输入流ifstream,字符输入流isstream.ostream_iterator用于将取数据写到流中,包括标准输出流istre

2012-06-17 14:34:47 716

原创 C++ 之 Reverse Iterator

逆向迭代器Reverse Iterator以逆行的方式进行所有的操作。将递增预算转换为递减运算,反之亦然。所有STL容器都可以通过rbegin()和rend()函数产生 Reverse Interator.举个例子: vector intVec; for(int i=1;i<=9;++i) intVec.push_back(i); cop

2012-06-17 14:24:48 354

原创 C++之自定义泛型函数

STL是一个可扩展的框架,这意味着你可以写自己的函数和算法来处理集群内的元素.当然,这些操作函数本身也可以是泛型的.举个例子:/**功能:用于打印col的元素col:需要打印的对象optcstr:在打印钱需要输出的字符串*/templateinline void Print_Elements(const T& col,const char* optcstr=""

2012-06-17 14:22:27 683

转载 Qt一些鲜为人知但非常有用的小功能

列举了Qt的一些鲜为人知但是非常有用的小功能:1. Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能2. Q_ENUMS:对枚举对象进行反射(reflection)3. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数4. Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数5. Q_

2012-06-17 14:19:59 519

原创 螺旋数组

最近开始潜心学习算法,从基础开始吧。加油!!这是螺旋数组的实现,可以选择顺时针、逆时针,升序、降序(即从里到外或者从外到里)。/** 螺旋数组*/class SpiralArray{public: enum DIRECTION{CW,ACW}; //CW顺时针clockwise,ACW逆时针anticlockwise enum OEDER{AO

2012-06-17 14:17:29 523

原创 C++之浅拷贝深拷贝

在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝(bitwise,即浅拷贝),也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。  深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过

2012-06-17 14:15:17 1472

原创 C++之RTTI

RTTI(Run-Time Type Identification 运行时类型识别)是面向对象程序设计中一种重要的技术。        和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致(比如基类指针指向派生类对象

2012-06-17 14:10:42 301

转载 C++之fstream

在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)   从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,c

2012-06-17 14:09:17 610

转载 C++之string常用函数总结

string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string

2012-06-17 14:08:07 282

原创 2011-06-12 14:23 百钱买百鸡问题 -- 优化的力量

问题来源中国古代数学家张丘建在他的《算经》中提出了著名的"百钱买百鸡问题":鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何?基本思想利用计算机来解决"百钱买百鸡问题"是程序设计语言中的一个经典的例子,"百钱买百鸡问题"的解决,基本思想是采用穷举法,即列举各种可能的买鸡情况从中选出鸡的总数为100只且买鸡的钱也刚好是100元的公鸡、母鸡和小鸡数,但是采用不

2012-06-17 14:07:06 2021

转载 50个c/c++源代码网站

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段 2、http:/

2012-06-17 14:01:29 498

空空如也

空空如也

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

TA关注的人

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