
C/C++
文章平均质量分 84
gxiaob
这个作者很懒,什么都没留下…
展开
-
cannot convert from 'WCHAR [260]' to 'std::basic_string<_Elem,_Traits,_Ax>'
error C2440: 'initializing' : cannot convert from 'WCHAR [260]' to 'std::basic_string'解决方法:这是由项目使用的字符编码所至的问题,使用unicode时,LPSTR p = str.getBuffer(len + 1)便会出现这个错误,解决方法是将Project Properties中的Confi原创 2014-06-12 21:46:17 · 4372 阅读 · 0 评论 -
数字转字符串
方法一:数字+‘0’转换成字符#include#include#includevoid main(){ int inte_num; int len,len_temp;; char temp; char *p; char *q; q=(char *)malloc(sizeof(char)); p=(char*)malloc(sizeof(char));原创 2013-09-18 12:00:08 · 1552 阅读 · 3 评论 -
二分查找
一、递归写法#include//设数组是由小到大的顺序排序的int search_loc(int a[],int k,int low,int high){ int mid; if(k>a[high]||k return -1; if(low>high) return -1; mid=(low+high)/2; if(a[mid]==k) retur原创 2013-10-01 23:22:12 · 1411 阅读 · 0 评论 -
2014年华为上机题一
此题是2013年9月14日本人参加上机考试的题目1、第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50以下答案是本人写的,已经在vs2008上测试通过,如果有更简便的方法还请提出来。#include#includeusing namesp原创 2013-09-14 23:08:49 · 7769 阅读 · 11 评论 -
逆波兰式
一 中缀表达式转化为后缀表达式通常的四则运算都是中缀表达,而计算机比较容易处理的是后缀表达,为此需要将中缀表达式转化为后缀表达式即逆波兰式。例如:(a+b)*c-(a+b)/e,转化为逆波兰式即为ab+c*ab+e/-常用的方法是用堆栈处理:1、利用两个栈主要步骤如下:将一个普通的中序表达式转换为逆波兰表达式的一般算法是:首先需要分配2个栈,一个作为临时存储运算符的栈S原创 2013-10-01 16:59:33 · 1868 阅读 · 0 评论 -
Sizeof的实现
#includeusing namespace std;template int SIZEOF(T &v){ return (char *)(&v+1) - (char *)(&v);} int main(){ int a; char b; double c; cout cout cout return 0;}原创 2013-09-30 22:55:02 · 1612 阅读 · 0 评论 -
约瑟夫环
n个人,编号1,2,。。。n,从头开始报数,报到m的人出列,然后从下一个人重新开始报数,直至到最后一个人,求最后一个人出列的时其原始的序号。步骤:1构建循环链表,数据域为序号2遍历循环链表(p->next!=p),利用k计数,当k=m,则将m对应的结点删除掉,继续遍历3当只剩一个结点,p->next=p,将p->num输出#include#includetypedef原创 2013-09-27 11:48:32 · 1554 阅读 · 0 评论 -
string类的正向和反向查找
1、正向查找和反向查找的函数 正向查找: s.find(s0) 反向查找: s.rfind(s0) 其中s表示待查找的字符串,s0表示需要查找的子字符串,两个函数的返回值均为首次找到子串时,子串的 首字符在原待查找字符串中的位置。2、用法举例:#include#includeusing namespace std;int main(){原创 2013-08-24 22:54:59 · 7690 阅读 · 0 评论 -
字符串转整数
方法1:字符-‘0’#include#includeusing namespace std;int main(){ int i; int temp=0; string s; cin>>s; for(i=0;i cout cout temp=temp*10+(s[i]-'0'); } cout}方法2 itoa函数#inc原创 2013-09-18 17:58:10 · 1017 阅读 · 0 评论 -
memset函数实现与举例
#include#includevoid *my_memset(void *buffer,char c,int count){ assert(buffer); char *temp; int count_temp=count; temp=(char*)buffer; while(count>=1){ temp[--count]=c; } temp[coun原创 2013-09-18 22:51:05 · 1378 阅读 · 0 评论 -
new,malloc,delete,free的区别与联系
未完待续原创 2014-06-12 21:49:15 · 1423 阅读 · 0 评论 -
写一个函数,模拟strstr()函数
思路:1 外层循环依次遍历长串,判断长串的某字符是否和短串的第一个字符相等 2 如果相等,记录保存长串字符的位置,令temp=i,则长串和短串继续后移比较,直到短串到达末位,此时返回temp为起始地址的字符长串否则将i=temp;继续进行外层循环3外层循环遍历完都没找到,则返回NULL;//写一个函数,模拟strstr()函数,strstr()函数主要将主串中子串//以及以原创 2013-09-26 23:32:36 · 2507 阅读 · 0 评论 -
输入一行字符串,找出其中出现长度最长的字符串
输入一行字符串,找出其中出现长度最长的字符串,输出它及其首字符的位置,例如yyabcdajcabceg,输出abc和3 #include#includeusing namespace std;int main(){ string str_a; string sub_str; int l_order; //从左向右查找到的位置 int r_order; //从原创 2013-09-26 22:21:48 · 5214 阅读 · 0 评论 -
求字符串中连续出现次数最多的子串
//思路:构建后缀串,第一轮循环,将串一的一系列前缀串和其他串等长的前缀串进行比较,如果相等,则进行适当的跳跃比较(其他串次序跳跃),第一轮比较之后,再对串二进行类似的操作。#include#include#includeusing namespace std;pair fun(const string &str){ string same_string; i原创 2013-09-20 20:11:56 · 1593 阅读 · 0 评论 -
堆排序
//首先建立大根堆,结点从0开始到n-1,建堆的时候从n/2-1到0,不断的筛选//新的结点交换有可能破换原有的秩序。//建立好大根堆之后呢,从n-1到0遍历结点,不断的将最后一个结点(依次递减)元素和//首结点元素交换,保证最后一个结点(依次递减)始终最大,与此同时,首结点再交换之后//秩序发生了变换,因此重新构建大根堆.....#includevoid heap_ada原创 2013-10-04 23:31:06 · 1452 阅读 · 0 评论 -
fatal error LNK1169: 找到一个或多个多重定义的符号
1、在a.h文件中定义申明了自己的函数和一个变量如下: #include #include #include #include"cv.h" using namespace std; #pragma once vector all_files ; void FindMyfile(st原创 2013-07-16 10:30:38 · 9670 阅读 · 0 评论 -
VS2010代码不能够定位到申明
由于调试别人程序的需要我安装了一个vs2010,刚开始使用的时候一切还好,但是使用一段时间后就发现右键不能够定位源码了,带了很多不便,在网上查询了一些方法,也进行过重置操作,刚开始还是有作用的,但是一段时间以后,右键仍然会出现不能定位源码的问题,也尝试过对软件重新修复,安装,但是仍未能解决问题,还请高手指点解决问题的方法。在此谢过!原创 2013-01-29 16:35:40 · 1958 阅读 · 0 评论 -
C++中nth_element函数的用法
std::nth_element">template void nth_element ( RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last );template void nth_element ( Rand原创 2013-01-07 11:58:10 · 5632 阅读 · 0 评论 -
C++中的norm函数的用法
function templatestd::norm">template T norm (const complex& x);Return norm of complex numberReturns the norm value of the complex number x.The norm value of a complex number is the s原创 2013-01-06 10:09:20 · 34538 阅读 · 1 评论 -
解析C++中get()和getline()的区别(二)
本文转自http://developer.51cto.com/art/201107/277395.htm用getline()读取输入行当程序使用cin输入时,cin用空白符和行结束符将各个值分开。根据所需输入的值,如需读取一整行文本并且分开不同的域,则要使用getline成员函数getline(char*line,int size,char ='"n') 第二个参数是本次读取的最转载 2012-12-18 22:43:35 · 975 阅读 · 0 评论 -
memset函数使用详解
本文转自http://www.cnblogs.com/xiaolongchase/archive/2011/10/22/2221326.html 今天做题卡在MEMSET函数的使用上了,本来以为int a[100]; memset(a, MAX,sizeof(a));就是将a数组全部赋值为MAX,现在才知道他的填充是以字节为单位,一般用于对字符型变量的初值进行赋值.更详细的解说见百转载 2012-12-17 09:14:31 · 891 阅读 · 0 评论 -
getline函数的几种用法
(1)istream& getline ( istream& is, string& str, char delim ); istream& getline ( istream& is, string& str );Get line from streamExample#include#includeusing namespace std;int原创 2012-12-18 22:38:31 · 3809 阅读 · 0 评论 -
解析C++中get()和getline()的区别(一)
本文转自http://developer.51cto.com/art/201107/277395.htm下面通过例子为大家介绍C++中get()和getline()的区别。问题一:#include #include using namespace std; void main(void) { string st ; cout"Input st:"; ge转载 2012-12-18 22:42:33 · 947 阅读 · 0 评论 -
c++解读复杂的定义式
最近看到一个网友说到的关于解读c++里面复杂定义式的方法,觉得很适合我这种初学者,于是贴出来,跟大家分享,当然大家如果有好的方法也请推荐,指导,大致内容如下:Thinking in C++ 里 作者介绍了一个简单的方法来解读复杂的定义式, 称为right-left guideline. 简单的说就是从中间的变量名开始, 按右-左-右-左...的顺序来读. 以这原创 2013-01-15 23:11:13 · 1210 阅读 · 0 评论 -
#include <afx.h>
最近下载了一个程序,但是程序运行的时候出现了如下错误: fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]最后发现头文件中原创 2013-07-14 10:09:37 · 7915 阅读 · 0 评论 -
vs中debug和release版本的区别
vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。 de原创 2013-06-07 22:16:14 · 58755 阅读 · 1 评论 -
matlab中调用c++函数
matlab2010a调用C++函数混合编程(1)混合编程的原理MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,它是可以被matlab解释器自动装载并执行的动态链接程序,类似windows下的dll文件。(2)在matlab命令窗口中选择编译器, mex -setup 在matlab里面新建一个名字为function .cpp文件,名字可以原创 2013-03-15 22:30:18 · 11717 阅读 · 2 评论 -
C++中#define的用法
最近遇到了#define的多行定义的用法,以前从未碰到,通过查阅网上资料,终于弄明白了,现在将这些别人的整理的资料收集起来,方便以后查阅。1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常原创 2013-03-03 22:19:51 · 1350 阅读 · 0 评论 -
VS2008 Debug与Release的本质区别
本文转自http://blog.sina.com.cn/s/blog_86ef2c1d0100s2bz.html对于VS2008的初次使用者来说,常会遇到的编译问题时,Debug版本运行正常,但在Release版本则不稳定或无法运行。以下是对Debug版本与Release版本本质区别的分析: Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Relea转载 2012-12-15 15:14:32 · 1147 阅读 · 2 评论