C++
文章平均质量分 62
xiaofei2010
艰苦的奋斗
展开
-
C++ primer:转换与类类型
转换包括两类:到类类型的转换和从类类型的转换。到类类型的转换:可用一个实参调用的非explicit构造函数定义一个隐式转换。当提供了实参类型的对象需要一个类类型的对象时,编译器将使用该转换。这种构造函数定义了到类类型的转换。从类类型的转换:通过定义转换操作符、给定类类型的对象,利用该操作符产生其他类型的对象。像其他转换一样,编译器将自动应用这个转换。转换的作用:支持混合类型表达原创 2012-02-03 10:30:10 · 576 阅读 · 0 评论 -
C++ 虚函数 派生类的调用
#include using namespace std;class A{public: virtual void print(){ cout<<"a"<<endl; }//////////////////////////////////////////////////////////////////////////////////////////////////////////原创 2012-02-24 20:50:37 · 1139 阅读 · 0 评论 -
求出任意N!的末尾有多少个零
思路:一个整数若含有一个因子5,则必然会在求 N! 时产生一个零//对任意的N!#include using namespace std;int main(){ int N; cin>>N; int sum=0,cnt=0; for (int i=0;i<=N;i+=5) { int j=i; while(j%5==0&&i!=0) { cnt++;原创 2012-03-14 18:55:51 · 484 阅读 · 0 评论 -
求高次方的最后三位尾数
思路:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可以大大简化程序。//求x的y次方的最后三位尾数#include using namespace std;int main(){ int x,y,last_three=1; cin>>x>>y; for (int i=0;i<y;i++) last_three=last_thre原创 2012-03-14 18:59:13 · 1352 阅读 · 0 评论 -
3-2 判断字符串是否为回文
#include #include #include using namespace std;/*void resort(char s[]){char temp;for (int i=0,j=strlen(s)-1;i!=j;i++,j--)//对j的初始化是关键{temp=s[i];s[i]=s[j];s[j]=temp;}}*/void resort(strin原创 2012-04-05 12:53:37 · 614 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系(转载)
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用size转载 2012-04-05 10:45:28 · 421 阅读 · 0 评论 -
以app模式向文本文件末尾写入内容
#include #include #include int main(){ using namespace std; // We'll pass the ios:app flag to tell the ofstream to append // rather than rewrite the file. We do not need to pass in ios::out原创 2012-04-05 17:05:44 · 933 阅读 · 0 评论 -
向文本文件中写入内容
#include #include #include using namespace std;int main(){ // ofstream is used for writing files // We'll make a file called Sample.txt ofstream outf("Sample.txt");//注意:此处的等价于:ofstream outf;o原创 2012-04-05 14:13:41 · 705 阅读 · 0 评论 -
按行输入的实现方法
有三种方法实现按行输入:成员函数get()。成员函数getline()。定义在头文件中的全局函数getline()。前两个函数有三个参数:.指向字符缓冲区的指针,用于保存结果。.缓冲区的大小(为了保证缓冲区不会溢出)。.结束字符,根据结束字符判断停止读入操作,默认为'\n',在输入过程中遇到结束字符时,这两个函数都会在结果缓冲区莫为存储一个零。前两个原创 2012-04-05 13:26:09 · 1297 阅读 · 0 评论 -
3-3 要求不区分大小写,如abcBA仍认为是回文
#include #include #include using namespace std;/*void resort(char s[]){char temp;for (int i=0,j=strlen(s)-1;i!=j;i++,j--)//对j的初始化是关键{temp=s[i];s[i]=s[j];s[j]=temp;}}*/void resort(strin原创 2012-04-05 22:00:31 · 1113 阅读 · 0 评论 -
C++ 十进制'纯'小数转换为任意进制的小数
#include using namespace std;int main(){ float n; int p,c,m=0,precision=0,s[100]; cout<<"输入要转换的数字:"<<endl; cin>>n; cout<<"输入要转换的进制:"<<endl; cin>>p; cout<<"输入精度precision:"<<endl; cin>>preci原创 2012-04-07 14:35:50 · 7253 阅读 · 0 评论 -
读取当前程序路径
//读取当前程序路径#include using namespace std;int main(int argc,char *argv[]){ cout<<argv[0]<<endl;//要理解主函数中参数含义 return 0;}原创 2012-04-08 11:48:25 · 479 阅读 · 0 评论 -
Why C++ ? 王者归来(转自:http://coolshell.cn/articles/6548.html)
因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文《2012 不宜进入的三个技术点》ActionScript,Thread 和 C++, C++争议的争议最大。(要我说,.NET比C++更需要慎重进入,呵)。我就在这里回复一下这个问题吧。正好我一个月前看到一个视频,这个演讲视频还比较著名,这个演讲者是Exceptional C转载 2012-04-24 13:15:44 · 914 阅读 · 0 评论 -
程序员技术练级攻略(来自:http://coolshell.cn/articles/4990.html)
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历转载 2012-04-24 13:44:57 · 1009 阅读 · 0 评论 -
The Archive of Interesting Code(有各种算法,牛!!!)
The Archive of Interesting CodeThe Archive of Interesting Code is an (ambitious) effort on my part to research, intuit, and code up every interesting algorithm and data structureever invented. I转载 2012-04-24 13:58:23 · 1340 阅读 · 0 评论 -
C++笔试题大全----上
1.求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;}假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“转载 2012-04-13 10:18:26 · 1234 阅读 · 0 评论 -
C++笔试题大全----下
一、输入一个n ,然后在屏幕上打印出NxN的矩阵!例如,输入一个3,则1 238 947 65输入一个4,则1 2 3 41213 14 51116 15 610 98 7参考答案: #include#include#define N 10 void printCube(int转载 2012-04-13 10:20:27 · 1209 阅读 · 0 评论 -
从字符串中提取整数
#include #include #include using namespace std;int main(){ string str="234 567 0abc123 ?789"; istringstream is(str); int i; char ch; cout<<"输出字符串中的数字:"<<endl; while (is>>ch) { if (ch>='原创 2012-04-14 16:02:59 · 8951 阅读 · 0 评论 -
C语言获取系统时间的几种方式 !
http://blog.csdn.net/johnny710vip/article/details/6693319C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double diff转载 2012-04-16 12:47:42 · 2102 阅读 · 0 评论 -
STL Algorithms : replace_copy、replace_copy_if
这是学习C++编程思想第六章(通用算法)后,写的一个算法的实现,很简单,为了以后回忆这块时快速上手,就放上一段小的代码:#include #include #include using namespace std;bool myfn(char c) { return c=='3';}//判断字符是否为‘3’int main(){ char a[]={'4','1','3'原创 2012-04-21 12:39:16 · 508 阅读 · 0 评论 -
字符串输入/输出流类stringstream
#include #include #include using namespace std;int main (int argc,char *argv[]) { //定义一个stringstream对象sstr,并用a填充字符串缓冲区 stringstream sstr("a"); //调用put函数往字符串缓冲区插入一个字符b,插入位置是开头,故将a覆盖掉了 sstr.p转载 2012-04-22 22:57:21 · 3341 阅读 · 0 评论 -
命名空间namespace的使用
头文件:namespace.hnamespace ns{ int x=2;}源码:test.cpp#include #include "namespace.h"using namespace std;int main(){ int x=1; std::cout<<ns::x<<std::endl;//ns为头文件namespace中的空间名,使用ns::x指原创 2012-04-22 23:42:53 · 527 阅读 · 0 评论 -
Map 使用
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2012-04-23 12:53:25 · 366 阅读 · 0 评论 -
指向字符串的指针 和 字符数组的区别
C语言的字符串有两中表现形式:char *ch="hello world";char ch[]="hello world";这两种形式都能实现字符串的存储,但有区别:1、复制的不同对于字符数组,我们可以对某个字符进行赋值:char ch[4]='r';这将对第五个元素进行赋值,但不能以下面方式赋值:char ch[20];ch="hello worl转载 2012-04-23 15:13:06 · 3717 阅读 · 0 评论 -
常见的预处理命令总结
常见的预处理命令总结:# 空指令将位于其后面的任何字符用引号引起来:#define show(x) cout<<#x;然后调用show(x),show(hello world);相当于:cout#include 在该命令位置处包含一个原代码文件#define 定义一个宏#define x 5int a[x];相当于:int a[5];#define仅进行两个字转载 2012-04-23 12:48:18 · 754 阅读 · 0 评论 -
递归贪心算法c++源码实现
//递归贪心算法的实现//test1.cpp#include using namespace std;void RecursiveActivitySeletor(int* s,int *f,int i,const int n){ int m=i+1; while(m<=n&&s[m]<f[i]) m+=1; if (m<=n) { cout<<"a["<<m<<"]"<原创 2012-04-24 11:06:09 · 2708 阅读 · 0 评论 -
迭代贪心算法c++源码实现
//迭代贪心算法的实现//test2.cpp#include using namespace std;int i=0,n=11,k=0;int b[10];void GreedyActivitySeletor(int* s,int *f){ for(int m=i+1;m<=n;m++) if (s[m]>=f[i]) { k++; b[k]=m;//b[原创 2012-04-24 11:41:51 · 2304 阅读 · 0 评论 -
C++内联函数跟普通函数的区别以及实现机制
内联函数定义:将函数定义为内联函数,一般就是将他在程序中每个调用点上“内联地”展开。在函数返回类型前加上inline关键字。定义在类声明之中的成员函数将自动地成为内联函数。内联函数适用情况:1.一个函数被重复调用;2.函数只有几行,且不包含for,while,switch语句。内联函数应该放在头文件中定义,这一点不同于其他函数。内联函数可能在程序中定原创 2012-05-28 15:58:48 · 8741 阅读 · 2 评论 -
编程之美 - 寻找数组中的最大值和最小值
根据书中第四种思路得到下面的源码:#include using namespace std;struct mytype{//定义返回类型 int x,y; mytype(int m,int n) : x(m),y(n){}};mytype Search(int arr[],int b,int e){ int maxV,minV; if (e - b <= 1) {原创 2012-05-10 11:01:01 · 568 阅读 · 0 评论 -
条款36:绝不重新定义继承而来的non-virtual函数
//绝不重新定义继承而来的non-virtual函数#include using namespace std;class B{public: void mf() {cout << "调用基类B成员函数" << endl;} //......};class D:public B{public: void mf(){cout << "this is D running" <<原创 2012-05-13 10:31:52 · 753 阅读 · 0 评论 -
回溯法实现排列(摘自《计算机程序设计经典题解》)
//回溯法实现排列//应用回溯法产生排列A(m,n)。设置一维数组a,a[i]在1—n中取值,出现数字相同时返回。//当i<m时,还未取m个数,i增1后a[i]=1继续;当i=m时,输出一个A(n,m)的排列,并设置变量s统计A(n,m)排列的个数。//当a[i]<n时,a[i]增1继续。当a[i]=n时,回溯或调整,知道i=0时结束。//回溯实现A(n,m)代码如下:#include转载 2012-05-13 16:58:07 · 834 阅读 · 0 评论 -
统计长方形对角线穿过的小正方形的个数(摘自《计算机程序设计经典题解》)
//串长方形统计#include #include using namespace std;int main(){ int n = 1,t,a1 = 0,b1 = 0,a2,b2; //a1、b1分别表示长、宽方向上已统计过的整数 float a,b,x,le,ca,cb; //a、b为长方形两条边 cout << "输入长方形的长和宽:" << endl; cin >>转载 2012-05-13 21:20:05 · 3414 阅读 · 0 评论 -
分治法实现归并排序
//分治法实现归并排序#include using namespace std;#define SIZE 10void merge(int array[],int first,int mid,int last) //合并{ int new_arr[SIZE],i,j,k=first; memset(new_arr,0,SIZE); for (i = first,原创 2012-05-14 18:36:14 · 3180 阅读 · 0 评论 -
几个不错的C++/VC++网站(个人收藏额~~)
cplusplus: http://www.cplusplus.comlearncpp:http://www.learncpp.com/C++ reference: http://en.cppreference.com/w/cppMSDN 库(中文):http://msdn.microsoft.com/zh原创 2012-04-19 21:45:30 · 1195 阅读 · 0 评论 -
指针进行比较运算时极易犯的错误!
首先给出两个小程序;a.正确运行的程序:#include void main(){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; int *p; for (int *p = a;p < &a[10];) *p++ = 0;//************或者下面for语句****************// //for (int *p = &a原创 2012-06-05 21:11:02 · 623 阅读 · 0 评论 -
1425: sort hash表排序
给你n个整数,请按从大到小的顺序输出其中前m大的数。每组测试数据有两行,第一行有两个数n,m(0输入: 5 3 3 -35 92 213 -644 输出: 213 92 3 //******以下为输入元素无重复情况时源码******#include using namespace std;int hash[1000001];int main(原创 2012-03-01 22:50:55 · 878 阅读 · 0 评论 -
2035: 人见人爱A^B
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”Input输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1Output对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。Sample Input2 312 66789 100000 0Sample Output89841原创 2012-05-17 22:51:51 · 607 阅读 · 0 评论 -
1108: 最小公倍数
Problem Description给定两个正整数,计算这两个数的最小公倍数。 Input输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数. Output对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。 Sample Input10 14 Sample Output70#include using na原创 2012-05-17 18:35:03 · 838 阅读 · 0 评论 -
1021: Fibonacci Again
Problem Description:There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).InputInput consists of a sequence of lines, each containing an integer n. (n原创 2012-03-02 14:10:15 · 805 阅读 · 1 评论 -
ACM NOTE01
1. 输入不说明有多少个Input Block,以EOF为结束标志。参见:HDOJ_1089 #include int main() { inta,b; while(scanf("%d%d",&a, &b) != EOF) printf("%d\n",a+b); }2.各类输入一览:输入_第一类: 输入不说明有多少个Inpu原创 2012-02-29 16:28:37 · 769 阅读 · 0 评论