C/C++
文章平均质量分 74
fuxingdaima
这个作者很懒,什么都没留下…
展开
-
C宏定义#define
一。#define的用法1.简单的define定义#define MAXTIME 10002.define的“函数定义”define可以像函数那样接受一些参数,如下#define max(x,y) (x)>(y)?(x):(y);3.宏的单行定义#define A(x) T_##x#define B(x) #@x#define原创 2013-01-07 09:50:32 · 1162 阅读 · 0 评论 -
《STL》读书笔记
简介C++ STL 实现三类数据结构标准容器类 的实现: 顺序性容器 vector 从后面快速的插入与删除,直接访问任何元素 deque 从前面或后面快速的插入与删除,直接访问任何元素 list 双链表,从任何地方快速插入与删除 关联容器 set 快速查找,不允许重复值 multiset 快速查找,允许重复值 map 一对多映射,基于关键字快速查找,不允原创 2013-04-04 18:31:38 · 744 阅读 · 0 评论 -
CPPUNIT安装和使用(linux)
库安装下载cppunit-1.12.0.tar.gz标准的解压加安装: $ tar xzvf cppunit-1.12.0.tar.gz $ cd cppunit-1.12.0 $ ./configure $ make $ make install配置共享库 $ vi /etc/ld.so.conf //在文件中添加 /usr/loca原创 2013-04-16 18:22:39 · 2057 阅读 · 0 评论 -
GDB调试基础备忘
调试前提被调试程序在编译时要加入-g选项,这样才能产生供gdb调试使用的信息。例:$ gcc -g hello.c基本命令(1)启动调试。$ gdb 。执行此命令,只是为调试做好了准备,尚未启动被调试程序运行。此时进入调试界面。(2)设置可执行文件参数。如无参数可省。 (gdb) set args 参数1 参数2 参数3 ...。查看用 (gdb) show ar转载 2013-02-23 17:27:59 · 544 阅读 · 0 评论 -
string分析
string对象的字符串尾部没有结束符‘\0’。原创 2013-04-24 11:16:28 · 579 阅读 · 0 评论 -
大小端模式
为什么有大小端模式之分因为在计算机系统中,是以字节为单位的,一个地址单元对一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器)。另外,对于位数大于 8位的处理器,例如16位或者32位处理器,寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排存储的问题。因此就导致了大端存储模式和小端存储模原创 2013-03-15 11:00:10 · 2052 阅读 · 0 评论 -
string的c_str()和data()有区别?
本机windows系统安装了VS2008环境下,查看xstring文件的源码发现xstring类的c_str(),data()实现如下 const _Elem *__CLR_OR_THIS_CALL c_str() const { // return pointer to null-terminated nonmutable array return (_Myptr()); }原创 2013-03-12 15:38:42 · 2753 阅读 · 0 评论 -
VA_LIST的用法
有关VA_LIST的用法--变参函数的实现VA_LIST 是在C语言中解决变参问题的一组宏 VA_LIST的用法: (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针 (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。转载 2012-07-25 10:32:31 · 1059 阅读 · 0 评论 -
C++文件流
1.stream类,C++中所有的I/O流都以些“流”类为基础,包括文件标准IO,I/O(fstream, ifstream, ofstream),字符串IO(stringstream, istringstream, ostringstream)2.打开和关闭。(1)Fstream fio("filename");或 fstream fio; fio.open("filename"原创 2013-01-06 16:45:04 · 984 阅读 · 0 评论 -
STL算法学习
STL算法学习一 函数对象: 因为很多的算法中多使用了函数对象 二元函数对象,V1和V2为输入,V3为结果plus: transform(V1.begin(), V1.end(), V2.begin(), V3.begin(),plus());其他的二元函数对象:minus,multiples,divieds,modulus.二元断言函数对象,使用时需要bin转载 2012-10-31 10:04:06 · 525 阅读 · 0 评论 -
头文件string与string.h的区别
在C++中,#include与#include的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。喔,原来iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的。using name转载 2013-01-24 23:28:44 · 1157 阅读 · 0 评论 -
C++中不能为虚函数的情况
常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。1、为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2、为什么C++不支持构造函数为虚函数? 这个原因很简单,主要是从语义上考虑,所以不支持。因为构原创 2013-01-09 15:30:42 · 531 阅读 · 0 评论 -
《More Exceptional C++》读书笔记
2013.4.91.对象的生命周期。开始:构造函数执行完毕并正常返回之时。 如果构造函数不成功,析构函数永远不会被调用。结束:析构函数开始执行之时。在生命周期开始之前和生命周期结束之后,对象的状态都是没有存在。2构造函数的异常抛出。只要在初始化列表中的基类和成员子对象的构造函数抛出异常,就一定会从它们的外层构造函数中抛出,无法阻止。析造函数不应抛出异常?原创 2013-04-09 21:54:28 · 696 阅读 · 0 评论