![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
unity大话东游
一枚热爱游戏的程序猿,分享unity游戏开发哦~
展开
-
sizeof(空类或空结构体)
某童靴前天去理想国际某公司面试,回来在宿舍讨论了这样一道题:VC++里,有一个空类,没有声明任何成员变量或函数,请问此空类占多大字节空间?A、 0 B、 1 C、 4 D、8当时考虑了32bit和64bit机器,并且指针地址是int型,32bit占4个字节或64bit占8个字节,因此选了C和D后又想想,这转载 2015-02-02 17:17:17 · 1136 阅读 · 0 评论 -
数组和指针
区别1:指针和数组区别:int a[]={1,2,3,4,5};int *p=a;sizeof(a);//结果为20sizeof(p);//结果为4另外,如果数组作为函数形参,则退化为指针。因此void fun(int a[]){sizeof(a);}//结果为4区别2:#includeusing namespace std;int main(){原创 2015-02-03 20:26:45 · 330 阅读 · 0 评论 -
简易C\C++内存池
http://www.cppblog.com/weiym/archive/2013/04/08/199238.html当频繁地用malloc申请内存,然后再用free释放内存时,会存在两个主要问题。第一个问题是频繁的分配释放内存可能导致系统内存碎片过多;第二个问题是分配释放内存花费的时间可能比较多(这个问题不太明显)。这个时候我们就可以考虑使用内存池了。最朴素的内存池思想就是,转载 2015-04-23 00:24:20 · 508 阅读 · 0 评论 -
一些零散的C++语法思考
1.关于声明形式为CLASS::*MEMBER的用法。看下面例子:#includeusing namespace std;class A{public: A(int c):b(c){} int b;};void fun(A a,int A::*b){ cout}int main(){ A a原创 2015-05-13 16:44:55 · 377 阅读 · 0 评论 -
c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑分类: 2. 編程2013-12-13 15:55 2318人阅读 评论(4) 收藏 举报c++ 标准库 容器 性能一、vectorvector采用一段连续的内存来存储其元素,向vector添加元素的时候,如果容量不转载 2015-03-03 23:45:30 · 343 阅读 · 0 评论 -
C++读取多行数字然后读取该行各个数字
问题:比如让循环读取一行数字“1 2 3;4 5 6;7 8 9;”并且取出各个数字1,2,3,4,5,6,7,8,9说明:输入只有一行,以‘;’为分隔符,其实是三行数字,但是注意最后结尾有一个‘;’(如果没有这个分号,代码将发生很大变化)。每行数字以空格分割。解决:使用C++里面的getline和sstream。代码如下。#include#includ原创 2015-09-25 22:22:42 · 14111 阅读 · 1 评论 -
#ifndef
#ifndef XXX#define XXX...(需要编译的程序)#endif原创 2015-10-16 23:54:23 · 285 阅读 · 0 评论 -
static关键字的作用
类中加static的作用:参考http://wenku.baidu.com/view/1da5627002768e9951e738ae.html?from=related&hasrec=1转载 2015-03-13 18:14:44 · 3226 阅读 · 2 评论 -
类的基本成员函数实现(构造,拷贝构造,拷贝赋值,移动构造,移动赋值,析构)
类的声明和定义:(分别是构造,拷贝构造,拷贝赋值,移动构造,移动赋值,析构)主函数:运行结果:原创 2015-02-03 15:47:51 · 1039 阅读 · 0 评论 -
C++虚基类的作用
参考自:http://blog.csdn.net/caomiao2006/article/details/4463664虚基类的作用 当一个基类被声明为虚基类后,即使它成为了多继承链路上的公共基类,最后的派生类中也只有它的一个备份。例如:class CBase { };class CDerive1:virtual public CBase{ };class CD原创 2015-10-16 22:49:52 · 4917 阅读 · 0 评论 -
读取ip比如“192.168.1.2”并且提取出里面各个字段的数字
问题:读取ip比如“192.168.1.2”,提取出里面各个字段的数字。解决:循环中,首先cin>>a (a是一个int),然后cin>>s (s是一个char)。这样可以避免先读取string然后再转换为int的麻烦。#include#includeusing namespace std;int main(){ int a; char s=原创 2015-10-04 17:40:29 · 2474 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
http://blog.csdn.net/hairetz/article/details/4141043一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一转载 2015-03-14 10:51:37 · 330 阅读 · 0 评论 -
malloc和new的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任转载 2015-03-14 11:26:15 · 462 阅读 · 0 评论 -
多态和虚表
多态多态的这个概念稍微有点模糊,如果想在一开始就想用清晰用语言描述它,让读者能够明白,似乎不太现实,所以我们先看如下代码://例程1 #include iostream> using namespace std; class Vehicle { public: Vehicle(float speed,int tota转载 2015-02-02 16:41:45 · 530 阅读 · 0 评论 -
拷贝(复制)构造函数
参考文章一也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明复制构造函数作用,我先说说我们在编程时会遇到的一些问题。对于C++中的函数,我们应该很熟悉了,转载 2015-02-03 10:19:56 · 508 阅读 · 0 评论 -
C++ 文件结束符
问题描述:windows下int main(){ string str; while(cin>>str); cout"\n""end"endl;}控制台输入多个字符串后,输入文件结束符crtl-Z,并未使while循环结束,该如何跳出while循环? 解决方法:方法1:回车 - ctrl-z - 回车 方法2:改代码,设置自己的文件结束符String a转载 2015-01-24 18:04:18 · 630 阅读 · 0 评论 -
函数递归的优缺点
说说函数调用的优缺点。优点:实现容易。缺点:1.效率较低。递归是有时间和空间消耗的。另外,递归有可能很多计算都是重复的,从而给性能带来很大的负面影响。因为递归的本质是把一个问题分解成连个或者多个小问题。如果多个小问题存在相互重叠的部分,那么就存在重复的计算。2.可能导致调用栈溢出。每一次函数调用在内存栈中分配空间,而每个进程的栈的容量是有限的。当递归调用的层级太多时,就会超出栈的容原创 2015-02-04 21:01:55 · 4531 阅读 · 0 评论 -
怎么解决栈溢出?
1,什么是栈溢出?因为栈一般默认为1-2m,一旦出现死循环或者是大量的递归调用,在不断的压栈过程中,造成栈容量超过1m而导致溢出。2,解决方案:方法一:用栈把递归转换成非递归通常,一个函数在调用另一个函数之前,要作如下的事情:a)将实在参数,返回地址等信息传递给被调用函数保存; b)为被调用函数的局部变量分配存储区;c)将控制转移到被调函数的入口. 从被调用函数返回转载 2015-02-03 21:34:47 · 3805 阅读 · 0 评论 -
C++经典面试题
题一:1、int a=5,则 ++(a++)的值是()A、5 B、 6 C、7 D、逻辑错误a++返回的是一个临时变量,这里是右值,不能再前面++了2、下面的代码输出什么?(取地址运算符比+运算符的优先级要高)[cpp] view plaincopyint main(void)转载 2015-02-05 11:19:01 · 358 阅读 · 0 评论 -
C++ json api
http://www.docin.com/p-326686987.html转载 2015-03-13 18:01:30 · 555 阅读 · 0 评论 -
isspace()
http://blog.csdn.net/youbang321/article/details/7803341原型:extern int isspace(int c) 用法:#include 功能:判断字符c是否为空白符 说明:当c为空白符时,返回非零值,否则返回零。(空白符指空格、水平制表、垂直制表、换页、回车和换行符。)转载 2015-03-13 17:58:23 · 418 阅读 · 0 评论 -
C++中的locale设置
http://blog.csdn.net/koudaidai/article/details/7353772C/C++程序中,locale将决定程序所使用的当前语言编码、日期格式、数字格式及其它与区域有关的设置,locale设置的正确与否将影响到程序中字符串处理(wchar_t如何输出、strftime()的格式等)。因此,对于每一个程序,都应该慎重处理locale设置。转载 2015-03-13 18:00:52 · 1413 阅读 · 1 评论 -
内存池技术介绍
总结:使用内存池技术与"malloc和free、new和delete"相比的好处:1.减少内存碎片;2.节省堆遍历“空闲地址链表”分配和释放内存时的开销,提高性能。http://blog.csdn.net/shawngucas/article/details/6574863看到一篇关于内存池技术的介绍文章,受益匪浅,转贴至此。 原贴地址:http://www.转载 2015-03-14 15:26:36 · 282 阅读 · 0 评论 -
C++的回调机制
什么是回调开发中经常遇到等待其他模块事件通知的情况,例如:用户点击UI上button的事件,通知给相关函数处理逻辑Model中数据改变的事件,通知给相关View模块刷新界面异步IO完成的事件,通知给处理函数确认成功还是失败客户端向服务器发N种不同请求,服务器为每种请求准备好处理函数这些等待通知的函数被执行的过程就是回调的过程,所以回调是一个很常见很简单的事情。回调可能大转载 2016-05-16 11:34:10 · 10636 阅读 · 3 评论