
C++
文章平均质量分 58
ybhjx
留着自己学习,不做他用
展开
-
string类型和char*、char[]的转换
string转const char *:1. 使用string的成员函数c_str();2. 使用string的成员函数data();3. 注意事项:c_str()和data()的不同之处在于,data()会返回没有结束符的字符数组指针。并且需要强调一点,调用c_str()和data()得到的指针指向的地址和原来的string是一个地址,所以只要string改变了,c_str()和d...转载 2019-07-26 09:51:21 · 4415 阅读 · 0 评论 -
C++性能比较01
转载 2016-12-17 12:44:32 · 479 阅读 · 0 评论 -
c++ 数组排序(选择, 冒泡, 插入,快速)
#includeusing namespace std;//冒泡排序void bubbleSort(int arr[], int n){ for(int i = 0;i < n;i++){ //比较两个相邻的元素 for(int j = 0;j < n-i-1;j++){ if(arr[j] > arr[j+1]){转载 2016-09-03 12:18:50 · 35774 阅读 · 2 评论 -
c++排序函数详解
首先看sort函数见下表:函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序 partial_sort对给定区间所有元素部分排partial_sort_copy对给定区间复制并排序nth_ele转载 2016-09-03 12:18:10 · 373 阅读 · 0 评论 -
premake构造工具- 使用premake工具生成工程文件
PreMake可以自动生成多个平台的MakeFile,比起其它的MakeFile生成软件(qmake, cmake),它最大的特点应该是它的工程文件其实是使用LUA语言编写的脚本,这样一来,它的工程文件可以拥有非常强大的表达能力。PreMake的官方网站是:http://premake.sourceforge.net。可以下载到它的最新版本,仅仅一个可执行文件(大约230K),随便把它解压缩到转载 2016-07-19 14:17:52 · 4208 阅读 · 0 评论 -
c++ 标准数据类型
int 类型与操作系统,编译器相关如:win32下为32位,win64下为64位如果软件有移植需求,请使用固定大小的数据类型注意:long 的字节数是不随平台改变的,都是4字节补充:BYTE 1字节typedef unsigned char BYTE;WORD 2字节typedef unsigned short WORD;DWORD转载 2016-07-07 09:57:24 · 1147 阅读 · 0 评论 -
C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 如下就是一个父类中的虚函数:class A{public: virtual void out2(string s) { cout"A(out2转载 2016-06-30 10:45:29 · 19736 阅读 · 4 评论 -
C++字符串操作2
/* * main.cpp * * Created on: Aug 20, 2013 * Author: ZhangShaojian */#include #include string>using namespace std;int main() { string sz1("TEST1"); string sz2 = "TEST2";转载 2016-06-06 10:30:08 · 286 阅读 · 0 评论 -
C++字符串操作
1. 字符基础: ASCII, MBCS/DBCS, Unicode 有3种编码模式,并对应3种字符类型。 (1)单字节字符集(single-byte character set (SBCS)). -在这种编码模式下,所有的字符都只用一个字节(Byte)标示。 -ASCII是SBCS,用一个字节标示为'\0'的来标识SBCS字符串的结束转载 2016-06-06 10:29:02 · 338 阅读 · 0 评论 -
c++常用字符串操作函数
函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include #include int main(void){ char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1)转载 2016-06-06 10:28:06 · 536 阅读 · 0 评论 -
Lua教程(三):C语言、C++中调用Lua的Table示例
从写上一篇Lua的文章到现在,已经过去半月有余了,是时候让自己的Lua状态refresh一下了。本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table。理解Lua栈Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大转载 2016-03-25 17:15:52 · 1022 阅读 · 0 评论 -
C++将结构体传给lua
简单概要就是将结构体传给lua。代码C++代码[cpp] view plain copy print?void CProject1Dlg::OnBnClickedButton2() { // 打开换为 luaL_newstate lua_State *L = l转载 2016-03-24 16:11:21 · 1461 阅读 · 0 评论 -
Lua和C++语言的交互详解
前言写过Windows程序的人都知道,对于应用程序,如果需要在本地保存一些配置信息,我们经常将这些配置信息写在注册表或者本地的配置文件中,很多应用都是将一些配置信息写在配置文件中,比如以ini结尾的文件,这种配置文件很多,使用的很广泛,然后应用程序在启动的时候,就会解析这个配置文件,读取一些配置信息。Lua的一项重要用途就是作为一种配置语言。而这篇文章将结合Lua来扩展应用程序,这转载 2016-03-24 16:10:15 · 529 阅读 · 0 评论 -
Lua和C++交互详细总结
转自:http://cn.cocos2d-x.org/tutorial/show?id=1474一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索转载 2016-03-24 13:58:30 · 416 阅读 · 0 评论 -
lua入门之二:c/c++ 调用lua及多个函数返回值的获取
当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 相同类型的栈来交互。C 函数从栈中获取她的参数,调用结束后将返回结果放到栈中。为了区分返回结果和栈中的其他的值,每个 C 函数还会返回结果的个数(the function returns (in C) the number of results it is leaving on the stack.)。转载 2016-03-24 13:59:48 · 1115 阅读 · 0 评论 -
C# - Marshal.StructureToPtr方法简介
本博客(http://blog.youkuaiyun.com/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! 具体可以参考http://msdn.转载 2016-04-06 12:28:26 · 5872 阅读 · 0 评论 -
利用VS2005进行dump文件调试
http://blog.chinaunix.net/uid-21712186-id-1818407.html前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件。使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置。本文将讨论以下内容: 1、 程序编译选项 2、 利用VS2005 分析dump文件 3、 常见问题讨转载 2017-04-08 19:53:07 · 1779 阅读 · 0 评论 -
详说vC++中 string之万能转换方法
C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’\0’。c_str()返回一个以‘\0’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以’\0’结尾char*为C编程中最常用的字符串指针,一般以转载 2017-04-28 07:48:05 · 3183 阅读 · 0 评论 -
C# 半角全角字符转换函数
半角全角字符转换函数public string ToSBC(string input){//半角转全角:char[] c=input.ToCharArray();for (int i = 0; i < c.Length; i++){ if (c[i]==32) {c[i]=(char)12288;continue;}if (c[i]<127)...转载 2019-07-26 09:44:35 · 673 阅读 · 0 评论 -
c++学习(一):string/char[]/char* 是不是以'\0'结尾
从事C++编程已经三年有余,至今仍有一些基础性的知识不是很清楚。工作学习之余,做一下总结。问题提出:工作中经常遇到intparamname_offset = strlen( param_name.c_str() ) + 1;CopyMemory((char*)pBuf, param_name.c_str(), paramna...转载 2019-07-25 10:39:38 · 3324 阅读 · 0 评论 -
C++ 字符数组与字符串的使用及加结束符'\0'的问题
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ ‘I’,’ ‘,‘a’,‘m’,’ ‘,‘h’,‘a’,‘p’,‘p’,‘y’};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符...转载 2019-07-25 10:39:04 · 4388 阅读 · 0 评论 -
C++入门经典-例6.3-字符串之未使用字符串结束符“\0”和使用字符串结束符“\0”的区别
1:为字符串数组赋值的方式有两种,即数组元素逐一赋值和使用聚合方式赋值。 为数组元素逐一赋值。例如:pWord[0]='H';使用聚合方式赋值如:char pWord[]={'H','E','L','L','O'};2:字符数组的一些说明(1)聚合方式只能在数组声明的时候使用char pWord[5];pWord={'H','E','L','L','O'};/...转载 2019-07-25 10:07:30 · 831 阅读 · 0 评论 -
std::string 与 char* 之间的转换
原文地址:https://blog.youkuaiyun.com/u010023457/article/details/41855007std::string是c++标准库里面其中一个,封装了对字符串的操作把string转换为char*有3中方法:1:data如:string str = "Hello";char *p = str.data();2:.c_str如:st...转载 2019-07-18 13:40:05 · 3278 阅读 · 0 评论 -
VS中,打开文件时自动定位到目录树中
工具--选项--项目和解决方案--常规--在解决方案资源管理器中跟踪活动项这样就能快速跟踪了。https://www.cnblogs.com/jiqing9006/p/7088462.html转载 2019-07-11 17:23:33 · 3836 阅读 · 0 评论 -
在用sprintf、sprintf_s的过程中遇到的问题
今天在用sprintf和sprintf_s的过程中遇到了问题,想了挺久才解决的,现在就来记录一下。先上使用sprintf时出现错误的代码#include <new>#include <string>int main(){ std::string tmp = "ABC"; char *p = new char[tmp.size()]();...转载 2019-07-11 17:22:33 · 1777 阅读 · 0 评论 -
char * 与char [] 的区分以及如何对char *赋值
char*p="string" ; 中的*是指针变量定义中的标识,*跟随的是char , 即:这里是定义一个指针变量p, 其存储的数据类型是char *类型,即p本身存储的是char *类型(地址)数据。char *p ; //定义指针变量,未初始化打代码时发现如下两个例子均为正确的赋值方式:char *p1 = "abc";char p2[] = "abc";然而p2中的值可...转载 2019-07-11 17:21:21 · 18059 阅读 · 1 评论 -
C++ vector和list的区别
1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。2.list数据结构list是由双向链表实现的,因此内存空间是不连续的。转载 2017-04-25 09:34:59 · 2019 阅读 · 0 评论 -
C/C++中堆和栈的区别
一、预备知识—程序的内存分配由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等。其操作方式类似于数据结构中的栈。2、堆区(heap):一般由程序员分配释放(malloc/free、new/delete),若程序员不释放,程序结束时可能由操作系统回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全转载 2017-04-24 20:56:40 · 452 阅读 · 0 评论 -
C++中的栈内存和堆内存的区别
数据结构中的堆与栈:栈:是一种连续储存的数据结构,具有先进后出的性质。通常的操作有入栈(圧栈)、出栈和栈顶元素。想要读取栈中的某个元素,就要将其之前的所有元素出栈才能完成。类比现实中的箱子一样。堆:是一种非连续的树形储存数据结构,每个节点有一个值,整棵树是经过排序的。特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。常用来实现优先队列,存取随意。内存中的栈区转载 2017-04-24 20:55:29 · 1367 阅读 · 0 评论 -
详解c++指针的指针和指针的引用
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组)为什么需要使用它们当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来的值。我们用下边的代码转载 2017-04-23 13:44:11 · 931 阅读 · 0 评论 -
C++变量与指针
http://c.biancheng.net/cpp/biancheng/view/160.html指针变量是一种特殊的变量,它和以前学过的其他类型的变量的不同之处是:用它来指向另一个变量。为了表示指针变量和它所指向的变量之间的联系,在C++中用“*”符号表示指向 或表示取值,例如,i_pointer是一个指针变量,而*i_pointer表示i_pointer所指向的变量,见图6.3。转载 2017-04-23 13:24:46 · 3881 阅读 · 0 评论 -
指针:c++指针
一个有效的指针必然是以下三种状态之一:保存一个特定对象的地址;指向某个对象后面的另一对象;0 值。若指针保存0 值,表明它不指向任何对象。未初始化的指针是无效的,直到给该指针赋值后,才可使用它。关于未初始化的指针:对大多数的编译器来说,如果使用未初始化的指针,会将指针中存放的不确定值视为地址,然后操纵该内存地址中存放的位内容。使用未初始化的指针相当于转载 2017-04-23 13:15:30 · 612 阅读 · 0 评论 -
c++ 时间类型详解(time_t和tm)
原文:http://blog.youkuaiyun.com/love_gaohz/article/details/6637625Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类U转载 2017-04-06 10:16:54 · 19865 阅读 · 0 评论 -
extern "c"用法解析
引言C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此转载 2016-02-26 15:42:17 · 247 阅读 · 0 评论 -
C++ 和 C# 开发类型对应信息
///////////////////////////////////////////////////////////////////////////////////////* 类型对照表* 服务器类型定义 客户端类型定义* byte byte* char char*原创 2016-03-10 16:03:46 · 393 阅读 · 0 评论 -
C++游戏开发需要阅读的书籍
如果要自学游戏程序开发的话,可以看看下面的,呵呵。 游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦): 1、Gamebryo 2.2游戏引擎(盛大、腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档 2、游戏PDF书及其代码: 3D游戏编程、3D游戏编程大师技巧、Direct3D游戏编程入门教程第2版转载 2016-01-09 16:21:53 · 866 阅读 · 0 评论 -
随机选取算法 (有权重的记录中选取)
三类随机问题1. 已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管。 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可2. 在1类情况下,还要求选取出来的m条记录是随机排序的 实现思路: 给n条记录,分别增加一列标记,值为随机选取的1至n之间的不重复数据, 实现参考博文 将文件内容按行随机排列转载 2016-01-08 17:21:26 · 1049 阅读 · 0 评论 -
【Visual C++】游戏开发笔记十七 游戏基础算法(一) 游戏随机系统初步
本系列文章由zhmxy555编写,转载请注明出处。http://blog.youkuaiyun.com/zhmxy555/article/details/7468011作者:毛星云 邮箱: happylifemxy@qq.com 欢迎邮件交流编程心得每一款游戏,或大或小,都是由一段段默默无闻的算法在支撑着他们的运作,我们不能只欣赏绚丽的游戏成转载 2016-01-08 17:20:14 · 484 阅读 · 0 评论 -
字节存储排序:大端和小端的判别及转换
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。字节排序按分为大端和小端,概念如下大端(big endian):低地址存放高有效字节小端(little endian)转载 2016-01-07 12:24:45 · 650 阅读 · 0 评论 -
大端小端格式 理解
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端: 一个很好的记忆方法是,大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。转载 2016-01-07 12:08:52 · 644 阅读 · 0 评论