C/C++
文章平均质量分 72
Young0325
这个作者很懒,什么都没留下…
展开
-
C++Primer读书笔记(六)
C++Primer中一个简单的文本单词查询小程序TextQuery头文件:#ifndef TEXTQUERY_H#define TEXTQUERY_H#include #include #include #include #include #include #i原创 2011-07-22 12:26:11 · 618 阅读 · 0 评论 -
C++Primer读书笔记(十二)
C++中的标准异常类namespace std{ //exception派生 class logic_error; //逻辑错误,在程序运行前可以检测出来 //logic_error派生原创 2011-08-07 08:33:49 · 628 阅读 · 0 评论 -
C++沉思录读书笔记(二)
句柄类举例实现Handle.h头文件:#ifndef HANDLE_H_H#define HANDLE_H_Hclass Point{public:Point() : xval(0), yval(0) { }Point(int x, int y原创 2011-08-07 22:14:04 · 850 阅读 · 2 评论 -
C++沉思录读书笔记(一)
类的核查表1、你的类需要一个构造函数吗?2、你的数据成员是私有的吗?3、你的类需要一个午餐的构造函数吗?4、是不是每个构造函数初始化所有的数据成员?5、类需要析构函数吗?6、类需要一个析构函数吗?7、你的类需要复制构造函数吗?8、你的类需要一个赋值原创 2011-08-03 23:17:03 · 555 阅读 · 0 评论 -
使用包含编译模型编译模板类时出现无法理解的错误
错误代码:文件1:LinkedList.h//LinkedList.htemplatetypename T>class LinkedList{public: LinkedList(); ~LinkedList(); void clearall();原创 2011-08-08 20:51:54 · 3224 阅读 · 0 评论 -
C++沉思录读书笔记(三)
一个面向对象的程序范例面向对象编程的3个要素:数据抽象、继承及动态绑定。这个例程非常完整的展示了这3个要素。程序要做的内容就是要将这个算术表达树输出,即得到:(-5)*(3+4) Expressions头文件:#ifnd原创 2011-08-08 18:29:05 · 853 阅读 · 1 评论 -
C++Primer读书笔记(十三)
异常处理相关内容总结auto_ptr类模板:auto_ptr对象只能保存一个指向对象的指针,并且不能用于指向动态分配的数组,使用auto_ptr对象指向动态分配的数组会导致未定义的运行时行为1、auto_ptr 可以用于为异常安全进行内存分配2、auto_pt原创 2011-08-08 19:20:08 · 651 阅读 · 0 评论 -
C++读书笔记(四)
跟踪自己的类//输出重定向class Channel{public: Channel(ostream* os = &cout) : Trace_File(os) { } void Reset(ostream *os) { Trace_File = os原创 2011-08-14 23:05:09 · 565 阅读 · 0 评论 -
标准库中allocator类的使用
标准库中allocator类的使用 标准库中allocator类把内存分配和对象构造分开,首先调用allocator类中的allocate(n),分配n个T对象的raw空间,随后通过construct函数构造对象。反之,可以通过destroy函数释放对象,最后通过deal原创 2011-08-15 21:30:23 · 570 阅读 · 0 评论 -
__cdecl __fastcall与 __stdcall
调用约定:__cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。1、__stdcall调用约转载 2011-10-14 00:34:16 · 812 阅读 · 0 评论 -
堆和栈的区别
这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 =转载 2011-10-13 23:28:22 · 489 阅读 · 0 评论 -
详解compile & link
有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后转载 2011-10-15 23:39:02 · 800 阅读 · 0 评论 -
C++Primer读书笔记(十一)
函数匹配与函数模板如果重载函数中既有普通函数又有函数模板,确定函数调用步骤如下:1、为这个函数名建立候选函数集合,包括:a、与被调用函数名字相同的任意普通函数b、任意函数模板实例化,在其中,模板实参推断发现了与调用中所用函数实参想匹配的模板实参2、确定哪些普通原创 2011-08-05 16:14:08 · 542 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 该符号在函数 中
例如“error LNK2019: 无法解析的外部符号_imp__SetupDiGetDeviceInterfaceDetailW@24error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g原创 2011-08-05 14:10:04 · 4232 阅读 · 0 评论 -
C++Primer读书笔记(七)
STL 中 string list deque vector set map 容器的区别在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一原创 2011-07-22 15:33:37 · 520 阅读 · 0 评论 -
C++Primer读书笔记(九)
容器之零散札记 valure_type是存储元素的键值以及值的pair类型,而且键为const,举例:word_cnt数组的value_tpye为pair类 型,在学习map的接口时,需谨记value_type是pair类型,它的值成员原创 2011-07-22 16:30:37 · 544 阅读 · 0 评论 -
C++Primer读书笔记(五)
vector中size和Capacity的区别 vector ivec; cout for (vector::size_type ix = 0; ix != 24; ++ix) { ivec.push_back(ix); } cout ivec.reserve原创 2011-07-20 23:14:49 · 531 阅读 · 0 评论 -
C++Primer读书笔记(八)
STL容器之关联容器 集和多集(set 和multiset 容器类): 一个集合(#include)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用 的。集合中的元素按一定的顺序排列,并被作为集合中的实例。如果你需要一原创 2011-07-22 16:13:40 · 712 阅读 · 0 评论 -
C++Primer读书笔记(十)
Static类成员的用法 #include using namespace std;class Base{public: Base(int i):b(i){} static int get_a(){ return a; }private: int b; s原创 2011-07-22 21:28:08 · 448 阅读 · 0 评论 -
求一个数组的长度
求一个数组长度的方法:1、定义了一个int变量进行计数。2、定义宏操作3、使用模板#include #include using namespace std;#define Arr_Size(x) (sizeof (x)) / (sizeof *(x))templa原创 2011-07-25 19:41:48 · 2486 阅读 · 0 评论 -
偶遇C_STR()
c_str函数的使用c_str函数的返回值是const char*的,不能直接赋值給char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。与C语言的其他部分一样,它在c+的所有实现中可用,我们将原创 2011-07-20 16:36:05 · 742 阅读 · 2 评论 -
C++Primer读书笔记(三)
函数返回值需要注意点:1、千万不要返回局部对象的引用当函数执行完毕时,将释放分配给局部对象的内存空间,此时,对局部变量的引用就会指向不确定的内存。举例:const string &manip(const string &s){ string ret = s; return ret原创 2011-07-20 15:08:15 · 511 阅读 · 0 评论 -
C++Primer读书笔记(四)
vector.resize 与 vector.reserve的区别reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。resize是改变容器的大小,并且创建对象,因此原创 2011-07-20 22:28:33 · 689 阅读 · 1 评论 -
cin cin.get cin.getline
cincin.get()的结束符只有enter,但会把enter放入队列等待cin.getline()的结束符也只有enter,但不会把enter放入队列如果用cin>>…做过输入,在使用cin.getline之前,需要处理一下。处理的方法很多,你可以在cin>>…的输入语句后加原创 2011-07-22 09:49:13 · 501 阅读 · 0 评论 -
ctype.h包含的相关函数的用法
ctype.h里的函数 1 字符测试函数 1> 函数原型均为int isxxxx(int) 2> 参数为int, 任何实参均被提升成整型 3> 只能正确处理处于[0, 127]之间的值 2 字符映射函数 1> 函数原型为int toxxxx(int) 2> 对参数进原创 2011-07-22 11:30:59 · 1063 阅读 · 0 评论 -
为什么C++编译器不支持模板头文件和实现代码分离的编译
首先,C++标准中提到,一个编译单元[translation unit]是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件,后者拥有PE[Portable Executabl原创 2011-08-05 10:02:48 · 685 阅读 · 0 评论 -
freopen()函数的使用
当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。 函数名:fre转载 2012-01-10 14:05:13 · 36783 阅读 · 6 评论