C++
文章平均质量分 68
骑车骑车减肥了
码奴
展开
-
Cocos2dx实现翻牌效果(CCScaleTo与CCOrbitCamera两种方式)
由于项目需要实现翻牌的效果,所以自己在完成的过程中将这篇文章写下来,想想还是觉得有点艰辛。开始在网上找解决的办法找了很久,基本上就是一种解决方案,就是用CCOrbitCamera这个Action类来模拟实现翻牌的效果。但是我在使用的效果中始终不如人意。用CCOrbitCamera类实现倒是能实现,但是如果将牌移动到左上、左下或者其他不在屏幕中心的位置那这个效果就不行了,翻牌的位置就错误原创 2015-01-06 16:36:12 · 6810 阅读 · 0 评论 -
do{}while(0)的妙用
其实关注do{}while(0)的用法还是一次偶然的机会当时还在实习,连个工作都找不到,面试的时候有个面试题。请问do{}while(0)这样写有什么作用?我当时想这有什么作用,就是里面的代码块执行一遍就是了呗,费劲,胡乱答了几句在上面。虽然那公司把我录了,但是真的还是很坑的一家公司,呆了两个月自己闪人了。后面觉得这问题奇怪,就在网上搜了很多关于do{}while(0)用法的文原创 2015-01-05 12:36:33 · 2127 阅读 · 0 评论 -
C++ Stl的Vector使用
在项目中,vector使用很多很广,与其说vector使用很多不如说STL使用的很多。C++的STL库封装了常用的数据结构,它们里面又实现了一些非常实用的算法,使得STL被广泛使用,减低项目开发难度和周期。vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用原创 2015-01-22 23:32:54 · 1468 阅读 · 0 评论 -
C语言冒泡排序
冒泡是一个程序员接触最早的一个排序算法,简单粗暴。冒泡排序的核心思想就是:依次比较相邻的两个数,如果第一个数比第二个大就交换。程序还是要自己动手写,这样理解得才快。#include "stdafx.h"#include #include #define SIZE(A) sizeof(A)/sizeof(*A)using namespace std;void bubble原创 2015-01-23 17:37:16 · 1357 阅读 · 0 评论 -
VS看反汇编、寄存器、内存、堆栈调用来学习程序设计
其实计算机这套东西是真的太大了,太多的东西要学要理解更要掌握学习的时候要不断拆分理解才能掌握得更牢固学程序的时候可以通过查看程序的运行过程进而加深自己对程序设计的理解调试出最优化的代码VisualStudio,微软的高端IDE,可以写C/C++可以搞C#,写网站等等,牛逼得爆VS调试方便功能强大,一般公司也用它来开发我在学C++的时候也是用的VS,在学习的时候感觉用到的东西原创 2015-01-26 13:19:39 · 6034 阅读 · 0 评论 -
stl deque使用详解
一、 Deque阐述 deque和vector都是顺序性容器,deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还支持从开始端插入数据:push_front()。dequ原创 2015-03-09 18:02:04 · 2149 阅读 · 0 评论 -
Stl List使用
一、 List简介 STL中的list就是一双向链表,因此它的内存空间是可以不连续的,通过指针来进行数据的访问,这使list的随机存储变得非常低效,list不支持随机访问,就是没有 at()函数和[]操作符。但是list可以很好地支持任意地方的插入和删除,只需移动相应的指针即可,可高效地进行插入删除元素。 总之,如果你需要大量的插入和删除,而不关心随即存取,原创 2015-03-17 18:26:38 · 977 阅读 · 0 评论 -
Stl各容器对比
1. vector 变长一维数组,连续存放的内存块,有保留内存,堆中分配内存; 支持[]操作,高效率的随机访问; 在最后增加元素时,一般不需要分配内存空间,速度快;在中间或开始操作元素时要进行内存拷贝效率低; vector高效的原因在于配置了比其所容纳的元素更多的内存,内存重新配置会花很多时间;注:需要高效的随即存取,而不在乎插入和删除使用vector。原创 2015-03-11 09:50:51 · 1645 阅读 · 0 评论 -
Stl Map用法
一、Map简介 关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置类获取。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能修改其对应的实值。二、Map的优势 1. 自动建立Key-value(键值对)的对应。key 和 value可以是任意你需要的类型,但原创 2015-03-10 21:35:31 · 1082 阅读 · 0 评论 -
fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory
妈的,搞了毛大一歇!!解决办法:项目--右键--属性--配置属性--常规--平台工具集--选择Visual Studio 2013 -WindowsXP(v120_xp)原创 2015-05-27 16:29:12 · 4622 阅读 · 1 评论 -
顺序存储结构和链式存储结构的选择
容器的存储分为顺序存储和链式存储一、顺序存储结构 从数据结构的角度来说顺序储存结构的存储空间固定,可扩展性差,但是如果数据元素个数已知,较链式存储节省空间。 它的优点是随机读取任意一个元素(因为元素时顺序存储的,所以元素的存储位置之间有一定的关系)但是顺序存储的缺点是删除、插入操作需要花费很多时间在移动元素上。 STL中的vector就是典型的顺原创 2015-01-21 15:26:13 · 4474 阅读 · 0 评论 -
pthread的pthread_join()函数理解实验
一、使用方式pthread_t tid;pthread_create(&tid, NULL, thread_run,NULL);pthread_join(tid,NULL);创建线程之后直接调用pthread_join方法就行了。二、为什么要使用pthread_join() 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,原创 2015-01-20 18:51:55 · 44550 阅读 · 7 评论 -
Java使用JNI调用C++的完整流程
JNI其实是Java NativeInterface的简称,也就是java本地接口。它提供了若干的API实现了和Java和其他语言的通信(主要是C/C++)。 Java以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决Java对本地操作的一种方法就是JNI。 Java通过JNI调用本地方原创 2015-01-09 16:37:06 · 2750 阅读 · 0 评论 -
C++的error LNK2019: 无法解析的外部符号编译错误
1>Proxy.obj : error LNK2019: 无法解析的外部符号 __imp__connect@12,该符号在函数 "public: enum ProxyStatus __thiscall CProxy::ConnectProxyServer(unsigned int)" (?ConnectProxyServer@CProxy@@QAE?AW4ProxyStatus@@I@Z) 中被引原创 2015-01-07 17:12:02 · 21760 阅读 · 0 评论 -
快速排序
实际中最常用的一种排序算法,速度快,效率高,就像它的名字一样。快速排序的基本思想是:1.先从数列中取出一个作为基准。2.分区过程,将比这个基数大的数全部放在它的右边,小于或者等于它的数就全部放在它的左边。3.然后再对左右区间重复第二步,直到各区都只有一个数就排序完成了。实现的代码:#include "stdafx.h"#include void q原创 2015-02-03 16:00:31 · 1048 阅读 · 0 评论 -
结构体内存对齐后所占内存空间大小的计算
在项目开发中,很多时候其实会有用到sizeof一个结构体,具体什么时候用到呢。比如说有这样一个结构体:typedef struct tagOutCard{ short UserId; // 用户ID int byCardCount; // 出牌数目 int byCardData[20]; // 扑克列表}ST_OUT_CARD;这是一个棋牌原创 2014-12-11 13:30:25 · 1763 阅读 · 0 评论 -
C++的构造函数初始化列表
在看人家源码的时候卡住了,看见初始化构造函数的时候看不懂了,构造函数的:,,,这些都是些啥。纠结了半天,然后各种问各种搜资料,对这个东西理解了一部分了。 C++类中成员变量的初始化有两种方式:构造函数初始化列表和构造函数体内赋值。下面看看两种方式有何不同。#include "stdafx.h"#include using namespace std;cl原创 2015-02-04 16:08:54 · 905 阅读 · 0 评论 -
C++读取配置文件
想项目开发中终归会用到配置文件,方便改服务器IP端口这些这个代码适合Key-Value键值对类型的配置文件,我的配置文件是这样的这份代码我也是拷贝的,然后稍微改造了一下原创 2014-12-05 17:29:19 · 5561 阅读 · 1 评论 -
strupr与strlwr函数的实现
strupr函数用来将指向的字符串全部转换为大写的形式strlwr函数则用来将指向的字符串全部转换为小写的形式实现这样两个函数也比较简单还是先贴代码出来首先是strupr函数:// 字符全部转换为大写char* _strupr_d(char* src){ while (*src != '\0') { if (*src >= 'a' && *src <= 'z')原创 2015-01-17 16:47:36 · 17150 阅读 · 3 评论 -
strcat函数实现
其实也是在面试的时候遇到的这个问题回来了郁闷到了查了下这函数哎 以前学Java的没见到过这些世面终于还是看到这些基础的函数了试着写了下这个strcat函数,挺简单的char* _strcat_d(char* dest, char* src){ char* newStr = dest; if (dest == NULL || src == NULL) retur原创 2015-01-17 18:00:48 · 1706 阅读 · 0 评论 -
Windows上VS使用pthread重温经典多线程卖票(pthreads-w32-2-8-0-release.exe)(windows上使用pthread.h)
一、安装pthreads-w32-2-8-0-release.exe至于怎么下载这个exe还是自己去百度吧,CSDN上反正可以下载,而且有免费版本的,资源里面搜下就行了。然后安装这个就行了(按照下面的123来就行了)。然后Pre-built.2这个文件夹有个include和lib,把它们分别拷贝到C:\Program Files (x86)\Micros原创 2015-01-20 16:45:31 · 4383 阅读 · 1 评论 -
C++实现简单的String类
#include "stdafx.h"#include #include // delete之后将指针置为NULL防止空指针#define SAFE_DELETE(p) do{ if(p){delete(p); (p)=NULL;} }while(false);class String{public: // 普通构造函数 String(const char *str = N原创 2015-06-02 16:18:43 · 919 阅读 · 0 评论