自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

尹成的技术博客

尹成大魔王区块链与人工智能的技术分享

  • 博客(295)
  • 资源 (718)
  • 收藏
  • 关注

原创 cocos2d-x游戏开发系列教程-中国象棋06-游戏规则

前情回顾上一个博文我们提到象棋运动的函数dealWithChess,但是只是说该函数完成了棋子的选择和移动功能其实在这个函数里,在移动棋子之前,是要对棋子的移动是否合法进行判断的,我们一起来看看如何对棋子进行判断的判断移动规则入口在dealWithChess中,关注如下代码,这个judgeAction就是判断棋子移动是否合法的入口了这个代码是判断棋子的移动是否合规则,如果不合规则,则清除状态最后返

2013-12-30 08:36:00 8295

原创 cocos2d-x游戏开发系列教程-中国象棋05-开始游戏

前情回顾通过CCMainMenu的init函数,已经把所有的按钮,棋子都摆放完毕了,但是这个时候,棋子是不能走动的,只有在开始游戏之后才能移动棋子。点击按钮,开始游戏,那么点击开始按钮之后,程序究竟发生了什么事,我们继续看代码到创建这个开始按钮的地方。开始按钮的创建开始按钮的创建代码,在上一篇博文中有所提起,但是没有重点提及,是在CCMainMenu::init()函数中// 开始按钮 pIte

2013-12-29 00:18:44 7595

原创 cocos2d-x游戏开发系列教程-中国象棋04-摆棋

前情回顾在之前的学习中,我们已经了解到,下棋主界面是由CCMainMenu类实现的,在它的init函数中,初始化了主界面需要的各种数据,包括:创建控件,初始化32个棋子,初始化执行变量等等,在这个博文中,我们主要来学习,32个棋子是如何被初始化并显示在界面上的。这个显示和initCoordinate以及了解32个棋子显示在界面的目的,是为了让大家更好理解32个棋子的数据结构,这些数据结构在当棋子走

2013-12-28 07:26:28 7755

原创 cocos2d-x游戏开发系列教程-中国象棋03-主界面

前情回顾上个博客说道我们象棋程序进入了欢迎界面,在欢迎界面下等待一秒进入主界面进入主界面的关键代码如下:CCScene* pScene = CCMainMenu::scene();  创建scene...CCDirector::sharedDirector()->replaceScene(ps);  显示scene最关键的是CCMainMenu::scene函数,说明后面要显示的scene类型是C

2013-12-28 01:44:34 10539 1

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之子弹的碰撞检测处理

在上篇我们加上了简单的坦克之间的碰撞检测,这篇我们继续加上子弹之间,子弹与坦克之间的碰撞检测,对于上一篇碰撞处理不太完美的地方我们继续改进。1.子弹之间的碰撞 //玩家子弹和敌方子弹之间的碰撞 CCObject* pObj; CCARRAY_FOREACH(mEnemyTanks, pObj) { Bullet* enemyBullet = ((Tank*)pObj)->getBulle

2013-12-27 23:36:07 10055

原创 cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面

之前两个博客讲述了象棋的规格和工程文件之后,我们继续深入的从代码开始学习cocos2dx首先从程序入口main函数开始main函数int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine,

2013-12-27 22:59:45 8556

原创 cocos2d-x游戏开发系列教程-中国象棋01-工程文件概述

上一篇博文我们看到了象棋的效果图,这一张我们来看象棋代码的整体概述让我们先对整个代码框架有个了解。主目录:主目录包含内容如上图:classes目录:业务代码proj.win32:包括main.cpp和工程文件Resorces:代码中用到的资源剩下三个文件我们不用,不解释了classes目录:classes目录代码如上图这里包含了了WelCome.cpp:是欢迎页面的实现AppDelegate.cp

2013-12-27 15:20:43 9148

原创 cocos2d-x游戏开发系列教程-中国象棋00-前言

象棋描述在说代码之前,我们先让象棋效果闪亮登场,让大家看到最后的效果,以方便大家对代码的理解欢迎界面中国象棋程序,运行起来的第一个界面是一个欢迎界面,该欢迎界面在停留一秒后进入游戏界面游戏主界面新局:所有棋子归位,状态复位开始:在开了[新局]之后,点击[开始]开始游戏,只有点击开始之后,才能移动棋子悔棋:后退两步棋难度:该功能未实现选中棋子如果某个棋子选中,该棋子用绿色框围住,表示选中状态移动棋子

2013-12-27 14:37:48 11201

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之所有坦克之间的碰撞检测

上篇我们完成了简单的AI编写,但是各个坦克移动时之间是可以重合的,这节课我们来完成坦克之间的碰撞检测,还是在上篇的EnemyAI中完成。1.我先现在坦克类Tank中添加两个成员变量: CC_SYNTHESIZE(CCRect, mMovedRect, MovedRect); CC_SYNTHESIZE(bool, IsBlock, Block);mMovedRect是移动后的位置,目的是保存移动

2013-12-26 17:36:21 11913 1

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之敌方坦克AI的编写

在上篇我们完成了子弹和地图碰撞的检测,在这篇我们将完成敌方坦克AI的编写。具体思路是屏幕中保持有四个敌方坦克,然后坦克随机方向运动,并且子弹消失后1秒发射一次1.我们新建一个敌方坦克的AI类来控制地方坦克AI行为:static const char* enemyTankType[] = { "normalU.png", "speedU.png", "armor1U.png"};class

2013-12-24 19:55:18 11587

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞

上篇文章实现了坦克与地图碰撞的检测,这篇我们继续完成子弹和地图的碰撞检测。1.先设计一个子弹类Bullet,如下所示:class Bullet : public CCSprite{public: Bullet(); ~Bullet(); static Bullet* createBulletWithTank(Tank* tank); void initBulletWithTank(

2013-12-24 10:08:56 9391

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下

上篇我们完成了地图的信息获取和碰撞检测,这篇我们整合到程序中。在这之前我们改造一下Tank类,使它更加模块化,共容易理解:1.改造后的Tank类声明如下:class Tank : public CCSprite{public : Tank(); ~Tank(); static Tank* createTankWithTankType(const char* tankTypeName,

2013-12-23 11:38:51 8789 5

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测上

在上篇我们可以控制坦克在地图上任意行走了,但是实际游戏中遇到墙就应该是无法走动的,这节课我们继续完善程序,让他能在地图检测到墙壁,而无法通过。1.我们新建一个TileMapInfo类,来获取地图信息。class TileMapInfo{public: bool collisionTest(CCRect rect); static TileMapInfo* createMapInfoWi

2013-12-23 11:01:39 10721 4

原创 基于visual Studio2013解决面试题之1503最大公约数最小公倍数

题目解决代码及点评/* 求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法*/#include using namespace std;int Gcd(int a, int b){ if (a < b) { swap(a, b); } if (b == 0) { return a;

2013-12-22 23:33:23 7451 4

原创 基于visual Studio2013解决面试题之1409基数排序

题目解决代码及点评/* 基数排序 */#include #include #include #include void PrintArr(int *pnArr, int nLen){ for (int i = 0; i < nLen; i++) { printf("%d ", pnArr[i]); } printf("\n");}void Count

2013-12-22 23:30:06 7124 3

原创 基于visual Studio2013解决面试题之1408桶排序

题目解决代码及点评/* 桶排序*/#include#include#define SIZE 100void bucket_sort(unsigned *,int);//桶排序函数的原型void print(unsigned *,int);//打印函数的原型int main(){ unsigned array[SIZE]; int i=0; //为数组元素随机赋值

2013-12-22 23:24:26 7205 3

原创 基于visual Studio2013解决面试题之1207堆排序

题目解决代码及点评/* 堆排序*/#include #include #include #include void PrintArr(int *pnArr, int nLen){ for (int i = 0; i < nLen; i++) { printf("%d ", pnArr[i]); } printf("\n");}//返回i父节点下标int

2013-12-22 23:18:24 7085 3

原创 基于visual Studio2013解决面试题之1405归并排序

题目解决代码及点评/* 归并排序*/#include using namespace std;const int N=10;int anthor[N];void MergeSort(int *array,int begin,int end){ if(end-begin>1) { // MergeSort(array,begin,(begin+end)/2);

2013-12-22 23:10:17 7156 4

原创 基于visual Studio2013解决面试题之1404希尔排序

题目解决代码及点评/* 希尔排序*/#include using namespace std;const int N=10;void shell_sort(const int len, int *array){ int j,i,key; int gap=0; if( len <= 0 || array == NULL ) return; while( ga

2013-12-22 22:52:55 7186 5

原创 基于visual Studio2013解决面试题之1403插入排序

题目解决代码及点评/* 插入排序*/#include using namespace std;int main(){ int a[10]; for (int i = 0; i < 10; i++) a[i] = rand() % 100; for (int i = 0; i < 10; i++) //总索引 for (int j = 0; j < i;

2013-12-22 22:44:17 7024 3

原创 基于visual Studio2013解决面试题之1402选择排序

题目解决代码及点评/* 选择排序*/#include using namespace std;int main(){ int a[10]; for (int i = 0; i < 10; i++) a[i] = rand() % 100; for (int i = 0; i < 10; i++) { for (int j = i; j < 10 - i;

2013-12-22 22:29:52 6916 4

原创 基于visual Studio2013解决面试题之1401冒泡排序

题目解决代码及点评/* 冒泡排序*/#include using namespace std;int main(){ int a[10]; for(int i=0;i<10;i++) a[i]=rand()%100; for(int i=0;i<10;i++) for(int j=0;j<10-i;j++) { if(a[j]<a[j+1]) {

2013-12-22 22:19:34 7414 7

原创 基于visual Studio2013解决面试题之1310随机数

题目解决代码及点评/* 设 rand (s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为 R 的圆内 找随机 n 个点,并给出时间复杂度分析。*/#include #include #include using namespace std;void GetNPointInCircle(int R, int n){ srand(time(NULL));

2013-12-22 22:12:26 6849 3

原创 基于visual Studio2013解决面试题之1309求子集

题目解决代码及点评/* 把求子集运算转换为组合问题。 假设集合中包含 N 个元素, 子集合数 = C(N, 0) + C(N, 1) + ... + C(N, N-1) + C(N, N),对于 任一个子集合,可以用一个 N 元组表示,即 , 其中 Si 取值范围为(0, 1), 0 表示不该子集合不包含该元素,1 表示该子集合包含该元素。因

2013-12-22 22:09:16 6816 3

原创 基于visual Studio2013解决面试题之1307二分查找

题目解决代码及点评/* 二分查找实现*/#include using namespace std;int BinarySearch(int *pnArr, int nLen, int nValue){ if (pnArr == NULL || nLen < 1) { return -1; } int nLeft = 0;

2013-12-22 22:01:52 6803 4

原创 基于visual Studio2013解决面试题之1306奇偶位数交换

题目解决代码及点评/* 将一个数中的偶数位 bit 和奇数位 bit 交换*/#include using namespace std;int SwapOddEvenBits(int n){ return ((n&0xaaaaaaaa)>>1) | ((n&0x55555555) << 1);}int main(){ cout<<SwapOddEvenB

2013-12-22 21:57:32 6955 3

原创 基于visual Studio2013解决面试题之1305字符串所有子集

题目解决代码及点评/*    若S是n个元素的集合,则S的幂集P(S)定义为S所有子集的集合。例如,     S=(a,b,c),P(S)={() ,(a),(b),(c),(a,b),(a,c),(b,c),(a,b,c)}给定S,写一递归算法求P(S)。*/#include #include using namespace std;char nAr

2013-12-22 21:55:01 6915 2

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄控制坦克移动

上篇显示了控制手柄,但是还不能用来控制坦克,这篇将会讲手柄和坦克的移动结合起来。1.先在CityScene场景中实现场景的虚函数virtual void onEnter();onEnter在进入场景后将会被调用,我们在onEnter中设置一个定时器,游戏每一帧都调用次,这样我们可以在每帧中检测手柄按钮是否被按下,然后控制坦克的移动,onEnter和update的函数实现如下:void CitySc

2013-12-21 16:53:49 9644 4

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄的显示

上篇文章我们有了坦克,但是没有手柄,无法控制坦克。1.这篇我们编写虚拟手柄来控制坦克。头文件大致内容如下:#define RES_PADDLE_LEFT "paddle/left.png"#define RES_PADDLE_LEFT_PRESS "paddle/left_press.png"#define RES_PADDLE_RIGHT "paddle/right.png"#def

2013-12-21 15:50:58 4667 5

原创 cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示

1.先定义坦克的一些属性class Tank : public CCSprite{public : Tank(); ~Tank(); static Tank* createTankWithTankType(const char* tankTypeName);};上面定义很简单,我们暂时只用写一个函数createTankWithTankType,2.函数功能就是从坦克类型创建坦克精灵,

2013-12-21 12:03:48 5608 4

原创 基于visual Studio2013解决面试题之1204大数组查找

题目解决代码及点评/* 有40亿个整数,在文件里保存,现在要找出这个文件里没有的某个整数,找到一个就行 这个40亿个整数大概要花掉4G内存,全部读出来是不可取的 我们可以通过位域来标记哪些存在哪些不存在 这样一个整数可以表示32个整数的存在情况,需要的内存是4G/32 = 1G/8 = 128M 然后将整数一个个读出来,根据整数的值,标记位域,最后再查找位域,哪个位置是0即可*/

2013-12-20 22:30:33 2201 2

原创 基于visual Studio2013解决面试题之1203转16进制输出

题目解决代码及点评/* 将数字转化成16进制输出*/#include using namespace std;char * get2String(long num){ int i = 0; char * buffer = NULL; char * temp = NULL; buffer = (char *)malloc(33); temp = buffer;

2013-12-20 22:09:50 2444 3

原创 基于visual Studio2013解决面试题之1202最大公共字符串

题目解决代码及点评/* 最大公共子字符串*/#include "stdio.h"#include "string.h"#include "stdlib.h"int longest_common_substring(char *str1, char *str2){ int i, j, k, len1, len2, max, x, y; len1 = strlen(str1);

2013-12-20 21:54:20 1875 2

原创 基于visual Studio2013解决面试题之1201链表去重

题目解决代码及点评/* 链表去重复,只去除相邻重复的元素 如果要去除所有,那么先排序即可*/#include using namespace std;struct student{ int id; struct student *next;};typedef struct student STD;STD *creat(int id){ STD *hea

2013-12-20 21:49:21 1802 2

原创 基于visual Studio2013解决面试题之1109全排列

题目解决代码及点评/* 用 1 、2 、2 、3 、4 、5 这六个数字,写一个 main 函数,打印出所有不同的排列*/#include using namespace std;void Perm(char *pszBuf, char *pBegin){ if (pszBuf == NULL || pBegin == NULL) { r

2013-12-20 21:45:24 1769 2

原创 基于visual Studio2013解决面试题之1105字符串压缩

题目解决代码及点评/* 字符串原地压缩 例如"aaabnndccdeee"压缩成"a3bn2dc2de3"*/#include using namespace std;void Condense(char *pszBuf1){ int nLen = strlen(pszBuf1); int nCount = 0; int i, j;

2013-12-20 21:42:08 2120 4

原创 基于visual Studio2013解决面试题之1102合并字符串

题目解决代码及点评/* 给出一个函数来合并两个字符串 A 和 B 。字符串 A 的后几个字节和字符串 B 的前几个字节重叠 重叠部分只要一份*/#include using namespace std;void CopyStr(char *pszBuf1, char *pszBuf2, char *pszBuf3){ int nLen1 =strlen(psz

2013-12-20 21:36:22 1929 1

原创 基于visual Studio2013解决面试题之1101差值最小

题目解决代码及点评/* 有一个整数数组,请求出两两之差绝对值最小的值, 记住,只要得出最小值即可,不需要求 出是哪两个数*/#include using namespace std;int FindMinGap(int *pnArr, int nLen){ if (pnArr == NULL || nLen < 2) { exi

2013-12-20 21:34:02 1992 2

原创 基于visual Studio2013解决面试题之1009兄弟字符串

题目解决代码及点评/* 匹配兄弟字符串,字符串内容一样,但是顺序不一样,称之为兄弟字符串*/#include using namespace std;int isBroStr(char *str1, char *str2){ // 整个数组,一个字符串对整个数组累加,一个字符串对这个数组累-,最后这个数组应该是0 int a[26 * 2] = { 0 }; int

2013-12-20 21:29:38 2076 2

原创 基于visual Studio2013解决面试题之1007鸡蛋和篮子

题目解决代码及点评/* n个鸡蛋放m个篮子,篮子不能为空,有多少种方法*/#include using namespace std;const int N = 6;const int M = 4;void put(int basket[],int egg){ if (egg <= 0) { for (int i = 0;i<M;i++) { cout

2013-12-20 21:27:02 1700 2

区块链原理-附代码.pptx

区块链原理-附代码.pptx 区块链原理-附代码.pptx 区块链原理-附代码.pptx

2018-02-13

深度学习中文翻译去水印版.pdf

深度学习中文翻译去水印版.pdf 深度学习中文翻译去水印版.pdf

2017-10-22

清华尹成C语言从菜鸟到高手.pdf

清华尹成C语言从菜鸟到高手.pdf

2017-02-01

Java开发实战1200例

Java开发实战1200例:1631b8ad000b49c351.is

2016-10-21

嵌入式Linux驱动程序设计从入门到精通:ffe0844001a2f011b.zip

嵌入式Linux驱动程序设计从入门到精通:ffe0844001a2f011b.zip

2016-10-11

基于LINUX的ORACLE数据库管理.李爱武.pdf

基于LINUX的ORACLE数据库管理.李爱武.pdf

2016-10-11

操作系统原理UNIX篇习题与实验指导:TP316.81+L208D2.rar

操作系统原理UNIX篇习题与实验指导:TP316.81+L208D2.rar

2016-10-11

物联网传感网实验教程

物联网/传感网实验教程:17030cc500039dc351.iso

2016-10-11

物联网工程实训教程

物联网工程实训教程:166a0c4a00007ac351.zip

2016-10-11

物联网实验

物联网实验:19b79441000ba80bce.iso

2016-10-11

云计算

云计算:172bfe9200020ac351.iso

2016-10-11

云计算的关键技术与应用实例

云计算的关键技术与应用实例:13a271fd000109c351.iso

2016-10-11

JavaScript网页特效范例宝典:f2e2a1c00033b0106.ISO

JavaScript网页特效范例宝典:f2e2a1c00033b0106.ISO

2016-10-11

VMware-workstation-full-12.5.0-4352439完美破解版.exe

VMware-workstation-full-12.5.0-4352439完美破解版.exe

2016-10-11

使用Eclipse开发J2EE培训PPT.ppt

使用Eclipse开发J2EE培训PPT.ppt

2016-10-11

Java项目开发与毕业设计指导:108092a10006f300ea.iso

Java项目开发与毕业设计指导:108092a10006f300ea.iso

2016-10-11

数据结构java版.rar

数据结构java版.rar

2016-10-11

Spring+20宝典:TP312JA+L162.1.rar

Spring+20宝典:TP312JA+L162.1.rar

2016-10-11

Java项目开发实例自学手册

Java项目开发实例自学手册

2016-10-11

经典Java+EE企业应用实战:14e968b9000c2ec351.iso

经典Java+EE企业应用实战:14e968b9000c2ec351.iso

2016-10-11

Java+EE+5权威指南:10356478000112010e.is

Java+EE+5权威指南:10356478000112010e.is

2016-10-11

Pro JavaFX_Source_Code.zip

Pro JavaFX_Source_Code.zip

2016-10-11

PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe

PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe Python开发图形界面

2016-10-11

Python Cookbook 第二版 完整示例代码.zip

Python Cookbook 第二版 完整示例代码.zip

2016-10-11

Python基础教程(第2版).7z

Python基础教程(第2版).7z

2016-10-11

httpwatch监视HTTP工具最新版本

httpwatch监视HTTP工具最新版本

2016-10-10

Android安全codes

Android安全codesAndroid安全codes

2016-10-10

AndroidNDKBeginner_'sGuideCode.zip

AndroidNDKBeginner_'sGuideCode.zip

2016-10-10

201109版《清华大学研究生学位论文写作指南》.zip

201109版《清华大学研究生学位论文写作指南》.zip

2016-10-10

codeblocks-16.01mingw_fortran-setup.exe下载

codeblocks-16.01mingw_fortran-setup.exe下载地址,需要的快快下载哦!

2016-10-10

netbeans-8.2-windows.exe

netbeans-8.2-windows.exe 全能开发工具

2016-10-10

openBSD最新版本

openBSD最新版本,最安全操作系统

2016-10-10

JavaSwing图形界面开发与案例详解.rar

JavaSwing图形界面开发与案例详解.rar

2016-10-10

实战LINUX_SHELL编程与服务器管理

实战LINUX_SHELL编程与服务器管理.zip

2016-10-10

Java语言程序设计(基础篇)(原书第10版)

本书是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书以示例讲解解决问题的技巧,提供大量的程序清单,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学技术解决实际应用开发中遇到的问题。 基础篇主要介绍基本程序设计、语法结构、面向对象程序设计、继承和多态、异常处理和文本I/O、抽象类和接口等内容。 本书可作为高等院校相关专业程序设计课程的基础教材,也可作为Java语言及编程爱好者的参考资料。

2016-09-29

轻量级Java+EE企业应用实战

轻量级Java+EE企业应用实战+2012:158f6c4a000144c351.iso

2016-09-24

清华大学组合数学

清华大学组合数学

2016-09-24

Android软件安全与逆向分析

Android软件安全与逆向分析

2016-09-24

20150329C定义变量->源代码

尹成,毕业于清华大学,微软全球最具价值专家,资深软件架构师,CSDN著名技术专家,微软-清华大学联合实验室技术顾问,清华大学移动互联网技术协会顾问,清华大学微软技术俱乐部创始人,清华大学iOS技术俱乐部创始人,清华大学LinuX技术俱乐部创始人。精通C/C++,对于移动3G,语音技术,信息安全都有丰富的开发经验。2010年著书《Visual C++ 2010开发权威指南》,版权作为大陆的骄傲输出台湾香港新加坡,代表大陆C++超越并引领台湾。[2-3] 2014年新作《Visual C++ 2012开发权威指南》出版[4] 。全面阐述了C++最新技术。

2016-09-08

20150329C补码->源代码

尹成,毕业于清华大学,微软全球最具价值专家,资深软件架构师,CSDN著名技术专家,微软-清华大学联合实验室技术顾问,清华大学移动互联网技术协会顾问,清华大学微软技术俱乐部创始人,清华大学iOS技术俱乐部创始人,清华大学LinuX技术俱乐部创始人。精通C/C++,对于移动3G,语音技术,信息安全都有丰富的开发经验。2010年著书《Visual C++ 2010开发权威指南》,版权作为大陆的骄傲输出台湾香港新加坡,代表大陆C++超越并引领台湾。[2-3] 2014年新作《Visual C++ 2012开发权威指南》出版[4] 。全面阐述了C++最新技术。

2016-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除