
c++/c
hi_dzj
msndzj@live.cn
展开
-
使用STL对结构体的排序
#include#include#include#includeusing namespace std;struct MyStruct{ int data; string name;};bool mytest(const MyStruct& s1,const MyStruct& s2){ return s1.data<s2.data转载 2011-06-24 11:12:00 · 627 阅读 · 0 评论 -
const char*, char const* and char *const 的区别
<br /><br /> <br />const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 <br /><br />事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 <br />Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: <br /> 把一个声明从右向左读。 <br /><br />char *转载 2010-11-25 13:44:00 · 394 阅读 · 0 评论 -
快速排序2
<br />#include <iostream><br />#include <time.h><br />using namespace std;<br /><br /><br />int PARTITION(int A[],int p,int r)<br />{<br />int x=A[r];<br />int i=p;<br />int j=r;<br /><br />while (i<j) //当还没相等需要进行的步骤<br />{<br />//i前进将不符合的数与主元调换,进而放到合适的位置原创 2011-01-18 16:32:00 · 463 阅读 · 0 评论 -
快速排序2
<br />#include <iostream><br />#include <time.h><br />using namespace std;<br /><br /><br />int PARTITION(int A[],int p,int r)<br />{<br />int x=A[r];<br />int i=p;<br />int j=r;<br /><br />while (i<j) //当还没相等需要进行的步骤<br />{<br />//i前进将不符合的数与主元调换,进而放到合适的位置原创 2011-01-18 16:31:00 · 483 阅读 · 0 评论 -
快速排序
<br />#include <iostream><br />#include <time.h><br />using namespace std;<br /><br />int Postion(int A[],int p,int r)<br />{<br />int i=p-1; //分割线分割两个集合<br />int x=A[r];//主元<br />for(int j=p;j<=r-1;j++)<br />{<br />if (A[j]<=x) //注意不要写成j了!!<br />{//原创 2011-01-17 22:07:00 · 462 阅读 · 0 评论 -
df
<br /><br />#include <iostream><br />using namespace std;<br />#include <fstream><br />#include <cstdlib><br />int main()<br />{<br />char b=EOF;<br />int a[1]={'/0'};<br />int buffer[10]={1,2,3,4,5,6,7,8,9,0};<br />fstream file("bfile.dat",ios::out|ios::b原创 2010-11-24 21:51:00 · 496 阅读 · 0 评论 -
文件操作标志位出错检测
<br />#include <iostream><br />using namespace std;<br />#include <fstream><br />#include <cstdlib><br />void showState(fstream &);<br />int main()<br />{<br /> int num=10;<br /> fstream testFile("stuff.dat",ios::out);<br /> if (testFile.fail())<br /> {<br原创 2010-11-23 21:21:00 · 644 阅读 · 0 评论 -
字符与字符串类型的注意事项(1)
#include #include using namespace std;int main(){char a=NULL;cout char b='/0';cout char c=' '; //除这个为空白字符,其他都是空字符cout char d[1]=""; //d[0]=""; //此处是将地址类型赋给d[0]字符类型,类型不一致,所以不能转换char *e=""; // 将字符串地址放到e指针中char *f="dzj";//f[1]='a'; //!!注意此处"dzj"在常量区不能改值s原创 2010-11-23 08:45:00 · 448 阅读 · 0 评论 -
找出有效数中的最小值
<br /><br />#include <iostream><br />using namespace std;<br />int find_min(int b[],int n,int &flag)<br />{<br /> <br /> int i=0;<br /> int before=0,after=0;<br /> for (i=flag;i<n-1;i++) //该flag为起始点的值<br /> {<br /> before=flag; //将每次比较的最小值给before<原创 2010-11-21 11:03:00 · 728 阅读 · 0 评论 -
斐波那契数列
<br /><br />#include <iostream><br />using namespace std;<br />int main()<br />{<br />int a=1,b=1;<br />cout << a << " " ;<br />while (b<100&&a<100)<br />{<br />a=a+b;<br />cout << b << " ";<br /> <br />cout << a << " " ;<br /> <br />b=b+a;<br />}<br /> <b原创 2010-11-17 19:46:00 · 416 阅读 · 0 评论 -
虚函数
<br /><br />C++中的虚函数(一)<br /><br /><br />作者:aber<br /><br /><br /><br /> 虽然很难找到一本不讨论多态性的C++书籍或杂志,但是,大多数这类讨论使多态性和C++虚函数的使用看起来很难。我打算在这篇文章中通过从几个方面和结合一些例子使读者理解在C++中的虚函数实现技术。说明一点,写这篇文章只是想和大家交流学习经验因为本人学识浅薄,难免有一些错误和不足,希望大家批评和指正,在此深表感谢!<br /><br /> 一、 基本概念<br /转载 2011-02-03 22:10:00 · 585 阅读 · 0 评论 -
指针类型转换 (转载)
<br /><br />1、强制类型转换<br />看一下这个c代码:<br />int a = 0x123456; //0x是十六进制的表示法<br />char c = (char)a;<br />printf("%x/n", c);<br />在我的编译环境里输出的是什么呢? 是56,怎么得来的呢?<br />int a的内存如下(左边是低地址的内容,右边是高地址的内容):0x56 0x34 0x12 0x00<br />"是不是搞反了?" 有人奇怪(正如我当年~~~~~~),这个问题还得详细转载 2011-03-05 09:52:00 · 2034 阅读 · 1 评论 -
STL对对象的排序
#include#include#include#includeusing namespace std;class MyStruct{public: friend bool mytest(const MyStruct& s1,const MyStruct& s2); MyStruct(int i,string s) { d转载 2011-06-24 11:11:00 · 441 阅读 · 0 评论 -
插入排序
#include using namespace std;#include #include /*插入排序:将其分成有序区域与无序区域,每一趟将无序区域中的第一个数取出来,从有序区域的末端开始查找插入到有序区域中的合适位置,并将插入点后面的有序区域后移初始化:有序数为1个,无序数为length-1个*///插入排序(从小到大排)void Insert原创 2011-06-13 10:58:00 · 477 阅读 · 0 评论 -
选择排序
#include using namespace std;#include #include /*选择排序:左边为有序序列,右边为无序序列初始化为左边为0个有序数,右边为num个无序数每执行一趟将无序数中选一个最小(最大)的数,与无序数的首个数进行交换,有序数+1,无序数-1执行num-1趟完成*///选择排序void SelectSort(int ta原创 2011-06-12 13:47:00 · 479 阅读 · 0 评论 -
冒泡排序
#include using namespace std;#include #include //bubble sort//例如10个数进行冒泡排序,则需要9趟冒泡(外循环),然后每趟逐渐比较9,8,7,6,5,4,3,2,1次(内循环),所以j=10-i//每趟都是从头开始比较,所以比较的两个元素只是与j有关void BubbleSort(int target[]原创 2011-06-07 19:22:00 · 483 阅读 · 0 评论 -
八皇后问题解析
<br /> <br />#include <iostream>using namespace std;//已确定每一行都有一个皇后//重复的执行: 在x行中逐个查找---符合的就先放置并在关联位置染上色---进行下一行的查找//---完毕后撤销原来在x行设置的关联染色并继续在该行中查找下一个符合的位置//结束条件:当深度查找执行到的行数>8行时就返回bool bMemoryArray[3][30] = {false};int nResultNum = 0;//在本行中执行放原创 2011-05-30 11:51:00 · 737 阅读 · 1 评论 -
C++中strlen()用法 (转)
<br /><br /><br /><br />int main( )<br /><br /><br />{ <br /> char str0[8]={'a','b','c','d','e','f','i','g'};<br /> char str1[]="abcdefig";<br /> char str2[]="01234/056789" ;<br /> char str3[]="abcse/0fgkij";<br /> printf("strlen(str0)=%d/n"转载 2011-03-26 10:45:00 · 46264 阅读 · 3 评论 -
VC _T的用途
<br /><br />VC++里面定义字符串的时候,用_T来保证兼容性。VC++支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。<br /><br />如果将来你不打算升级到unicode,那么也不需要_T。<br /><br />_t("hello world")<br />在ansi的环境下,它是ansi的,如果在unicode下,那么它将自动解释为双字节字符串,既unicode编码。 <br />这样做的好处,不管是a转载 2011-03-09 19:42:00 · 632 阅读 · 0 评论 -
vs解决方案release版本调成debug
<br />vs解决方案release版本调成debug<br />如果给你一个vs的解决方案,默认的是release版的,让你弄出一个debug版本出来方便调试,你会发现,一个大的工程,绝对不会是讲release改为debug那么简单。<br />首先,改为debug后,要保证一些基本的库跟release版本是一致的,这样才能够保证编译时能够找到库文件,dll或者lib,有时候路径设置的不对,甚至连h或者cpp文件也找不到。<br />然后,是字符集和MFC使用的设置,一般都是多字符集,MFC跟relea转载 2011-03-10 10:43:00 · 2692 阅读 · 0 评论 -
负数的二进制表示方法
<br />负数的二进制表示方法<br />今天在看base64编码转换时,既然对负数的二进制表示有些遗忘,在网上找了一下资料,贴出来已备在此遗忘:<br />假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:<br />00000000 00000000 00000000 00000101<br />5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。<br />现在想知道,-5在计算机中如何表示?<br /> <br />在计算机中,负数以其正值的补码转载 2011-03-02 19:43:00 · 1325 阅读 · 2 评论 -
数组中排除相同元素
<br /><br />#include <iostream><br />using namespace std;<br /><br /><br />void IniData()<br />{<br />int i=0,j=0,n=0,bposition=0;<br />bool find_simplech=false;<br />char a[1000],b[100];<br />cout << "请输入n个数据: ";<br />cin >> n;<br />for (i=0;i<n;i++) <br原创 2010-11-20 10:12:00 · 548 阅读 · 0 评论 -
数组中排除相同元素
<br /><br />#include <iostream><br />using namespace std;<br /> <br />void Distinct(char a[],char b[])<br />{<br />int i=0,j=0,n=0,bposition=0;<br />bool find_simplech=false;<br />cout << "请输入n个数据: ";<br />cin >> n;<br />for (i=0;i<n;i++) <br />{<br />cin原创 2010-11-20 10:12:00 · 726 阅读 · 1 评论 -
指针注意事项(1)
#include using namespace std;int main(){ int *p; int a[10]={0,1,2,3,4,5,6,7,8,9}; p=a+1; //p指向a[1]的地址 cout cout return 0;}原创 2010-11-07 14:13:00 · 433 阅读 · 0 评论 -
数组中求最大数
<br />#include <iostream><br />using namespace std;<br />int maxindex(int a[],int *index)<br />{<br /> int i,n;<br /> do <br /> {<br /> printf("please input n/n");<br /> scanf("%d",&n);<br /> } while (n>=1000||n<=0);<br /> ///////////////////////////////原创 2010-11-07 13:04:00 · 689 阅读 · 0 评论 -
杨辉三角(1)
<br /><br />#include <iostream><br />using namespace std;<br />#include <iomanip><br />void line_first_output(int x)<br />{<br />for (int i=0;i<x;i++)<br />{<br />cout << " ";<br />}<br />}<br />void FormatOut(int x)<br />{<br />cout<< setw(5) << x ;<br原创 2010-11-06 23:52:00 · 459 阅读 · 0 评论 -
c++中字符串的注意事项1
<br /><br />#include <iostream><br />using namespace std;<br />#include <string> //没有.h<br />int main()<br />{<br />//////////////////////////////////////////////////////////////////////////<br />//比较字符串的输出与修改<br />string s1 = "ABCD"; //这个"ABCD"的是存在常量区还原创 2010-11-06 20:34:00 · 486 阅读 · 0 评论 -
数组易错归纳
<br />1.当数组小标为-1时,注意此时-1只是用户抽象出来的,所以访问-1下标是会运行出错。原创 2010-10-24 15:24:00 · 497 阅读 · 0 评论 -
vc6.0环境下调试易出错点(1)
例如:#include using namespace std;int main(){ int a=0; cout cout cout cout cout return 0;}调试时若监测a++时,每调试一步a会自动加1;原创 2010-10-24 09:44:00 · 439 阅读 · 0 评论 -
visual studio 2008 与 vc6.0 区别1
for(int i=0;i{.....}for(i=0;i{.....}原创 2010-10-21 16:59:00 · 1233 阅读 · 0 评论 -
条件语句中的条件设置注意事项
对于条件变量为唯一的值时,尽量避免非+或条件,容易产生错误。一般最好用:‘是非+且’的形式原创 2010-10-24 15:09:00 · 666 阅读 · 0 评论 -
换行符,回车符,换行回车符区别
<br />#include <iostream><br />using namespace std;<br />int main()<br />{<br /> char a='/n',b='/r',c='/n/r';<br /> cout << "aaa" << " aaa";<br /> cout << a;<br /> cout << "aaaaaa";<br /> cout << b;<br /> cout << "aaaa";<br /> cout << c;<br />if (a==c)<br原创 2010-11-28 13:35:00 · 855 阅读 · 0 评论 -
Eratosthenes求素数法
<br />#include <iostream><br />using namespace std;<br />#define Max 22500<br />int main()<br />{<br /> unsigned int i,range,factor,k;<br /> int sieve[Max]={0};<br /> printf("please input the range:");<br /> scanf("%d",&range);<br /> for (i=2;i<=range;i++)原创 2010-11-07 16:58:00 · 422 阅读 · 0 评论 -
杨辉三角(2)
<br />#include <stdio.h> <br />#include <stdlib.h> <br />#define N 14<br />int main() <br />{ <br />int i,j; <br /> int a[100][100]; //用二维数组来做缺点是占用空间<br /> printf( "杨辉三角!:/n "); <br /> for(i=0;i <N;i++) //先把每一行的首尾的1给输出来<br /> { <b转载 2010-11-07 13:02:00 · 419 阅读 · 0 评论 -
数组中排除相同元素
<br /><br />#include <iostream><br />using namespace std;<br /><br /><br />void IniData()<br />{<br />int i=0,j=0,n=0,bposition=0;<br />bool find_simplech=false;<br />char a[1000],b[100];<br />cout << "请输入n个数据: ";<br />cin >> n;<br />for (i=0;i<n;i++) <br原创 2010-11-20 10:12:00 · 519 阅读 · 0 评论 -
斐波那契数列法二
<br /><br />#include <iostream><br />using namespace std;<br />int main()<br />{<br />int a=1,b=1;<br />cout << a << " " ;<br />while (b<100)<br />{<br />cout << b << " ";<br />b=a+b;//向前移一位<br />a=b-a; //利用差值得尾数<br />}<br /> <br />return 0;<br />}原创 2010-11-17 19:53:00 · 487 阅读 · 0 评论 -
struct与typedef struct的区别
struct{成员表列}变量名表列1,变量名表列2;(变量名表列1,变量名表列2)这2个变量名怎么理解? 一个是声明一个结构体的原始用法,一个是把结构体取了个别名。例如struct list{ int a; char c; stuct list *next;};(注意这个分号不能少)这个结构体的类型名是struct list ;struct只是声明结构体需要的关键字。 如果你要定义一个结构体变量 你就可以 :结构体类型 变量名如:stru转载 2010-11-15 16:51:00 · 8570 阅读 · 1 评论 -
简单排序(选择排序)
#include //简单排序using namespace std; //先比较,再移动(交换)--排序的两个基本操作!!void simple_sort(int b[],int n){ int flag=0,t; bool state=0; for (int k=0;k { flag=k; //!!每次移动后都要将标志位放入下一个起始位置(若flag刚好指向原位置则会发生不可预知的错误!!) for (int i=k;i { if (b[flag]>b[i+1]) { fla原创 2010-11-11 19:51:00 · 609 阅读 · 0 评论 -
冒泡排序
#include //冒泡排序using namespace std; //先冒泡,再排序!!void bubble_sort(int b[],int n){ int t; for (int j=0;j { for (int i=0;i { if (b[i]>b[i+1]) { t=b[i];b[i]=b[i+1];b[i+1]=t; } } }}int main(){ int a[10]={3,6,8,4,2,2,6,7,0}; bubble_sort(a,10); fo原创 2010-11-11 20:27:00 · 657 阅读 · 0 评论 -
二分查找算法2
<br /><br />/* 递归结构的二分查找 */<br />#include <iostream><br />using namespace std;<br />int BSearch(int a[],int x,int low,int high);<br />void main()<br />{<br />while (1)<br />{<br />int a[]={1,3,4,5,17,18,31,33};<br />int x;<br />cin >> x;<br />int bn;原创 2010-11-08 19:22:00 · 483 阅读 · 0 评论