随笔分类 - C++
摘要:在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout::iterator it;for(it=vec....
阅读全文
摘要:问:void print( int arr[][], int size );这个函数声明是对是错? 当然是错的了,这个根本不是什么函数声明的问题,而是数组声明的问题,int arr[][]这个声明就是错的,后面一维的长度不可省略!问:char* ScreenInit(int height = 12...
阅读全文
摘要:在C语言和C++的动态内存的使用方法是不同的,在C语言中要使用动态内存要包含一个头文件即#include或者是#include然后用C语言的系统函数void * malloc(usigned size);来获得动态分配的内存,这个函数参数是需要申请的内存的字节数,返回的是一个申请到的内存的首地址,这...
阅读全文
摘要:本文地址:http://www.cnblogs.com/archimedes/p/writing-efficient-c-and-code-optimization.html,转载请注明源地址。说明:本篇文章翻译自:http://www.codeproject.com/Articles/6154/W...
阅读全文
摘要:这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in-c-struct.html,转载请注明源地址。引言指针是C语言的重要组成部分, 于是深入理解指针并且高效...
阅读全文
摘要:http://www.cnblogs.com/xi52qian/p/4186983.html语言ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committeehttp://www.open-std.org/jtc1/sc22/wg21/C/C++ Refer...
阅读全文
摘要:为期一周的培训已经结束了,现在就情况总结如下:1.函数形参含有指针的时候,要先判断,然后在继续 即if(NULL == pointer) return; 注意NULL放在前面 防止出错 当malloc动态申请内存的时候,要先判断是否申请成功,类似上面所述 在释放内存的时候,利用free()操作,然后...
阅读全文
摘要:#include namespace First{ int i = 0;}namespace Second{ int i = 1; int j = 2; namespace Internal { struct Stu { ...
阅读全文
摘要:1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:c...
阅读全文
摘要:#include#includeusing namespace std;#define size 5class zhan{public: zhan() { number=0; } void push(int c) { if(number==size) { cout>str1; while(str1[...
阅读全文
摘要:#类中的元素0.成员变量 1.成员函数 2.静态成员变量 3.静态成员函数 4.虚函数 5.纯虚函数#影响对象大小的因素0.成员变量 1.虚函数表指针(_vftptr) 2.虚基类表指针(_vbtptr) 3.内存对齐_vftptr、_vbtptr的初始化由对象的构造函数, 赋值运算符自动完成;对...
阅读全文
摘要:在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。无论是float还是double,在内存中的存储主要分成三部分,分别是:(1)符号位(Sign):0代...
阅读全文
摘要:#pragma pack(4)typedef struct{ char buf[3]; word a;}kk;#pragma pack()对齐的原则是min(sizeof(word ),4)=2,因此是2字节对齐,而不是我们认为的4字节对齐。这里有三点很重要:1.每个成员分别按自己的方式对齐,并能最...
阅读全文
摘要:答案如下:void Convert() { map maps; maps[0]="0"; maps[1]="1"; maps[2]="2"; maps[3]="3"; maps[4]="4"; maps[5]="5"; maps[6]="6"; maps[7]="7"; maps[8]="8"; m...
阅读全文
摘要:一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类...
阅读全文
摘要:static_cast:干杂活的,那三个都有各自的专有用途,那三个不做的都由这个转型符来做,只要它能做的,用C语法的强制类型转换运算符也一定能够完成;但话又说回来了,C强制类型转换能做的,它可不一定都能做,比如去除const性。此外在这里声明一点,一般人都不会清楚都不会注意到的一点,就是四个之中只有...
阅读全文
摘要:为什么内联函数,构造函数,静态成员函数不能为virtual函数?1> 内联函数内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。2> 构造函数构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将...
阅读全文
摘要:字符串分割(C++) 经常碰到字符串分割的问题,这里总结下,也方便我以后使用。一、用strtok函数进行字符串分割原型:char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返...
阅读全文
摘要:在C++开发过程中经常会遇到两个比较容易混淆的头文件引用#include 和 #include,两者的主要区别如下:#include是C语言的标准库,主要是对字符串进行操作的库函数,是基于char*进行操作的,例如常见的字符串操作函数stpcpy、strcat都是在该头文件里面声明的。#includ...
阅读全文
摘要:一个是用来传值的 一个是用来获取首地址的&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.例如: int &rf; // 声明一个int型的引用rf.&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时 表示取对象的地址.在C++中,既有引用又...
阅读全文

浙公网安备 33010602011771号