随笔分类 -  c++

【STL】vector的insert方法详解
摘要:#include#includeusingnamespacestd;intmain(){vectorv(3);v[0]=2;v[1]=7;v[2]=9;v.insert(v.begin(),8);//在最前面插入新元素。v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新... 阅读全文
posted @ 2014-06-18 15:28 陈孝勇 阅读(68903) 评论(2) 推荐(1)
window7下 cocos2dx android交叉编译环境部署小结
摘要:上周被android交叉编译搞惨了,还好最后弄好了,写个小结以后备用吧。 步骤,1、下载cygwin的devel和shells模块 2、 2、设置环境变量 a、设置NDK_ROOT b、设置Path 编辑Path,在后面追加4个环境... 阅读全文
posted @ 2014-04-28 11:46 陈孝勇 阅读(407) 评论(0) 推荐(0)
[转]了解如何通过reverse_iterator的base得到iterator
摘要:转自:http://blog.csdn.net/shuchao/article/details/3705252调用reverse_iterator的base成员函数可以产生“对应的”iterator,但这句话有些辞不达意。举个例子,看一下这段代码,我们首先把从数字1-5放进一个vector中,然后产生一个指向3的reverse_iterator,并且通过 reverse_iterator的base初始化一个iterator:vector v;v.reserve(5); // 参见条款14for(int i = 1;i ::reverse_iterator ri = // 使ri指向3find( 阅读全文
posted @ 2014-02-23 22:53 陈孝勇 阅读(567) 评论(0) 推荐(0)
【转】失效迭代器(Invalidating Iterators)
摘要:当一个容器变化时,指向该容器中元素的迭代器可能失效。这使得在迭代器变化期间改变容器容易出现问题。在这方面,不同的容器提供不同的保障:vectors: 引起内存重新分配的插入运算使所有迭代器失效,插入也使得插入位置及其后位置的迭代器失效,删除运算使得删除位置及其后位置的迭代器失效.vector的push_back操作可能没事,但是一旦引发内存重分配,所有迭代器都会失效;vector的insert操作插入点之后的所有迭代器失效;但一旦引发内存重分配,所有迭代器都会失效;vector的erase操作插入点之后的所有迭代器失效;vector的reserve操作所有迭代器失效(因为它导致内存重分配);l 阅读全文
posted @ 2014-01-26 18:09 陈孝勇 阅读(437) 评论(0) 推荐(0)
vs2005环境下编译CEGUI 0.6.0
摘要:http://blog.csdn.net/kun1234567/article/details/2259450 阅读全文
posted @ 2013-11-07 18:16 陈孝勇 阅读(176) 评论(0) 推荐(0)
cocos2d-x-lua如何导出自定义类到lua脚本环境
摘要:这篇教程是基于你的工程是cocos2d-x-lua的项目,我假设你已经完全驾驭cocos-x/samples/Lua/HelloLua工程,基本明白lua和c++互调的一些原理。我们的目的是要在lua中使用我们自己定义的类,并且这个类要导出到我们自己的module,意思就是说不是追加到LuaCocos2d.cpp里面,目的是为了使我们的module和coco2d的module完全分离,这样以后更新cocos2d-x版本时,对我们的module没影响。1、先在Classes文件夹下创建一个类Test(新创建的,名字都是都是自己定,你可以随意起,下面不赘述),代码就简单点,例如?123456789 阅读全文
posted @ 2013-09-10 01:11 陈孝勇 阅读(2114) 评论(0) 推荐(0)
C++游戏开发需要阅读的书籍
摘要:如果要自学游戏程序开发的话,可以看看下面的,呵呵。 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦): 1、Gamebryo 2.2游戏引擎(盛大、腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档 2、游戏PDF书及其代码: 3D游戏编程、3D游戏编程大师技巧、Direct3D游戏编程入门教程第2版、DirectX角色扮演游戏编程 DirectX特效游戏程序设计、MFC windows程序设计第2版、MFC深入浅出、VC++深入详解、Visual C++6.0技术内幕第5版 Visual C++视频技术方案宝典、Win... 阅读全文
posted @ 2013-09-06 01:31 陈孝勇 阅读(877) 评论(0) 推荐(0)
reserve和resize区别
摘要:reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对象了 阅读全文
posted @ 2013-08-30 15:54 陈孝勇 阅读(264) 评论(0) 推荐(0)
++ fatal error C1083: 无法打开预编译头文件:“.\Debug\router.pch”
摘要:一、出现此错误首先检查:stdafx.cpp文件上右键——属性,预编译头选“创建”,其它cpp选“使用”。二、如果是采用这样的设置,还是有错误,重新生成解决方案,重新调试。三、实在不行的话,步骤/方法右键点击你创建的项目,选择“属性标签”点击属性,弹出“项目属性页”,在左侧找到以下位置 配置属性 --> C/C++ --> 预编译头,并选择它:在右边的菜单中选择 “创建/使用预编译头”中的“不使用预编译头文件”点击“确定”按钮退出即可原因分析。总结:编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间。为了提高编译 阅读全文
posted @ 2013-08-22 22:57 陈孝勇 阅读(759) 评论(0) 推荐(0)
初学lua --lua嵌入c++的一个问题(初始化lua出错,版本问题)
摘要:初学lua.从http://lua-users.org/wiki/CallingLuaFromCpp上下载了一个lua嵌入C++的代码.编译并运行.发现有错误:PANIC: unprotected error in call to Lua API (no calling environment)int main (int argc, char *argv[]){lua_State *L = lua_open();luaopen_base(L);luaopen_table(L);luaopen_io(L);//运行到此处是报错luaopen_string(L);luaopen_math(L);l 阅读全文
posted @ 2013-08-22 12:22 陈孝勇 阅读(1852) 评论(0) 推荐(0)
.NET中字符串split的C++实现
摘要:void CustomVersion::split(const string &s, char delim, vector &elems){ istringstream iss(s); string item; while(getline(iss,item,delim)) { elems.push_back(item); }}vector CustomVersion::split(const string &s, char delim){ vector elems; split(s,delim,elems); return elems;} 阅读全文
posted @ 2013-08-19 00:35 陈孝勇 阅读(287) 评论(0) 推荐(0)
成员函数指针与高效C++委托 (delegate)
摘要:下载实例源代码 - 18.5 Kb下载开发包库文件 - 18.6 Kb概要很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(delegates), 在类似的语言中已经体现出了它的价值. 在 Delphi(Object Pascal) 中, 他们是 VCL (Borland's Visual Component Library, 宝蓝可视化组件) 的基础. 最近的 C# 让委托的概念更为流行, 这也成为 C# 成功的因素之一. 在许多程序中, 委托可以简化由松耦合对象组成的高级设计模式(观察者模式, 策略模式, 状态模式)的 阅读全文
posted @ 2013-08-16 14:27 陈孝勇 阅读(12298) 评论(1) 推荐(1)
WPF之Binding深入探讨
摘要:1,Data Binding在WPF中的地位程序的本质是数据+算法。数据会在存储、逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要。但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处:A。数据库内部。B。读取和写回数据。C。业务逻辑。D。数据展示。E。界面与逻辑的交互。A,B两部分的算法一般都非常稳定,不会轻易去改动,复用性也很高;C处与客户需求最紧密,最复杂,变化最大,大多少算法都集中在这里。D,E负责UI和逻辑的交互,也占有一定量的算法。显然,C部分是程序的核心,是开发的重中之重,所以我们应该把精力集中在C部分。然而,D,E两部分却经常成为麻烦 阅读全文
posted @ 2013-08-11 16:45 陈孝勇 阅读(8130) 评论(1) 推荐(6)
Android.mk 用法介绍
摘要:一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着,在升级NDK后,你应该得到新的toolchain/platform支持,而且不需要改变你的Android.mk文件。 先看一个简单的例子:一个简单的"hello world",比如 阅读全文
posted @ 2013-08-06 18:14 陈孝勇 阅读(274) 评论(0) 推荐(0)
cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
摘要:今天将cocos2d-x的示例项目tests编译到android真机运行,以及如何创建cocos2d-x的android项目。打开cocos2d-x的tests项目,路径为:D:\cocos2d-x-2.0.1\tests下载:PdaNet:http://xiazai.zol.com.cn/detail/36/350633.shtml如果你的手机或者平板无法连上电脑,可以下载这个软件。第一步:编译cocos2d-x的示例项目首先用visual studio 打开 tests项目,看看项目结构classes下的tests文件夹就是官方的示例代码,里面包含很全的,可是学习的好途径。现在使用cygw 阅读全文
posted @ 2013-08-03 17:14 陈孝勇 阅读(346) 评论(0) 推荐(0)
cJson 创建 读取
摘要:关于c语言操作json,cjson还挺好用,许多操作已经帮开发员封装好了,使用起来很方便。资源下载地址为:http://sourceforge.net/projects/cjson/在test.c文件中已经有很多例子,看了还不会使用可以直接看cjson.c文件,也不深奥,实际上就是个双链表,然后是对这个双链表进行增删改查记录下这两天运用到的现有一个json文件如下:[{"id": "c1","option": "install","fid": "1"},{"id&q 阅读全文
posted @ 2013-07-22 23:40 陈孝勇 阅读(6176) 评论(0) 推荐(0)
【读书笔记】socket描述符选项[SOL_SOCKET]
摘要:#include int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len); 第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。option_name指定准备设置的选项,option_name可以有哪些取值,这取决于level,以linux 2.6内核为例(在不同的平台上,这种关系可能会有不同),在套接字级别上(SOL_SOCKET),optio 阅读全文
posted @ 2013-07-13 18:07 陈孝勇 阅读(2464) 评论(0) 推荐(0)
【读书笔记】setsockopt
摘要:setsockopt设置套接口的选项。#include #include intsetsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);sockfd:标识一个套接口的描述字。level:选项定义的层次;支持SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP和IPPROTO_IPV6。optname:需设置的选项。optval:指针,指向存放选项值的缓冲区。optlen:optval缓冲区长度。linux内核中定义为:static intsetsockopt(struc 阅读全文
posted @ 2013-07-13 18:05 陈孝勇 阅读(413) 评论(0) 推荐(0)
【读书笔记】socket函数
摘要:socket函数简介应用程序调用socket函数来创建一个能够进行网络通信的套接字。12345/* 头文件 */#include #include /* 函数原型 */int socket(int domain, int type, int protocol);第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);第三个参数指定 阅读全文
posted @ 2013-07-13 18:01 陈孝勇 阅读(186) 评论(0) 推荐(0)
关于sizeof和strlen
摘要:已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a',}; char ss[] = "0123456789"; sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(ss)=11解析:首先说明一点,char类型占一个字节,所以sizeof(char)是1,这点要理解str1是一个指针,只是指向了字符串"absde"而已。所以sizeof(str1)不是字符串占的空间也不是字符数 阅读全文
posted @ 2013-06-27 00:37 陈孝勇 阅读(277) 评论(0) 推荐(0)