摘要: #include <iostream>#include <vector>using namespace std;int main(){ vector<int> vec(10); for (size_t i = 0; i < 10; ++i) { cin >> vec[i]; } vector<int>::iterator iter = vec.begin(); cout << "The beginning number is:" <<endl; for (; iter != vec.e 阅读全文
posted @ 2011-06-09 09:25 hailong 阅读(204) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <iomanip>#include <fstream>#include <string>#include <iostream>#include <vector>using namespace std;void get_upper(string &s){ for(size_t i = 0; i != s.size(); ++i) { s[i] = toupper(s[i]); }}int main(){ ifstream infile("E:\\tes 阅读全文
posted @ 2011-06-08 22:11 hailong 阅读(5126) 评论(2) 推荐(1) 编辑
摘要: 计算临界元素的和并输出#include <iostream>#include <vector>using namespace std;int main(){ vector<int> ivec; int i = 0; while(cin >> i) ivec.push_back(i); size_t len = ivec.size(), j = 0; for (; j != len-1; ++j) { cout << ivec[j]+ivec[j+1] << " "; } if ((j+1)%2) { c 阅读全文
posted @ 2011-06-08 09:27 hailong 阅读(354) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <string>using namespace std;char* my_del_dot(string s){ size_t len = s.size(); char *des = new char[len+1]; int j = 0; for (size_t i = 0; i != len; ++i) { if (isalpha(s[i])) { des[j++] = s[i]; } } des[j] = '\0'; return des;}int main(){ string s; cin &g 阅读全文
posted @ 2011-06-06 11:18 hailong 阅读(689) 评论(2) 推荐(0) 编辑
摘要: argument实参,传递给被调用函数的值buffer缓冲区,一段用来存储数据的区域。cerr绑定要标准错误的ostream对象。class自定义数据结局的C++机制data structure数据以及数据操作的组合成员函数 类定义的操作namespace讲库所定义的名字放到单独的一个地方的机制string literak字符串字面值:以双引号括起的字符序列 阅读全文
posted @ 2011-06-06 10:50 hailong 阅读(244) 评论(1) 推荐(1) 编辑
摘要: 原文地址http://patmusing.blog.163.com/blog/static/135834960201032527733/虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base; class derived1 : virutal public base; class derived2 : virtual public base; class derived3 : public derived1, public derived2;以上的代码如果用到了base中的某个成员变量 阅读全文
posted @ 2011-05-30 21:10 hailong 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 找了个代码,但不知道问题在哪?博文链接http://www.cnitblog.com/qingchunjun/archive/2006/12/28/21212.html“今天在学习c++的深度复制概念时,发现c++中的字符数组和字符指针两种形式的数据进行深度复制时,有一些小小的差异,本人初学,特记之,以防遗忘。在c++中,当一个字符串以字符数组的形式定义时,都具有数组长度的定义,以char str[30]为例。这时代表系统已经分配了30个字节的内存给该变量,所以在执行深度复制时,一般采用strncpy函数进行复制,而不用new的形式分配新的内存。而当一个字符串是以字符指针的形式定义时,则代表该 阅读全文
posted @ 2011-05-17 22:26 hailong 阅读(361) 评论(1) 推荐(0) 编辑
摘要: 来计算t1,t2之间的时间差,它是通过调用windows系统的时钟进行时间差计算得到运行时间的,应用的形式t1=clock;。。。。。。。。。。。t2=clock;etime(t2,t1) 阅读全文
posted @ 2011-05-17 14:19 hailong 阅读(1914) 评论(0) 推荐(0) 编辑
摘要: // mystring.h -- class definition#include <iostream>#include<string>using namespace std;class String{private: char * str; // pointer to string int len; // length of string static int num_strings; // number of objects static const int CINLIM = 80; // cin input limitpublic: // constructors 阅读全文
posted @ 2011-05-10 22:16 hailong 阅读(2183) 评论(0) 推荐(0) 编辑
摘要: %**************************************************************************% 图像检索——纹理特征%基于共生矩阵纹理特征提取,d=1,θ=0°,45°,90°,135°共四个矩阵%所用图像灰度级均为256%参考《基于颜色空间和纹理特征的图像检索》%function : T=Texture(Image) %Image : 输入图像数据%T : 返回八维纹理特征行向量%********************************************************** 阅读全文
posted @ 2011-05-10 10:04 hailong 阅读(8634) 评论(1) 推荐(0) 编辑
摘要: c++中的delete和delete[] 昨天写了一篇关于delete和delete[]的文章,有位仁兄指出我的结论是错误的,那样的结果只会在特定的编译器程序。为了不会误导大家,文章意见删除。回家后仔细看了《Effective C++》,是我看书太不仔细了,虽然忘了那位仁兄是谁了,在这里还是谢谢你。现将《Effective C++》中正确的观点、结论摘录如下: 1. 当你使用new时,有两件事会发生。第一,内存被配置(透过函数operator new)。第二,会有一个(或以上)的constructors针对此内存被调用。当你使用delete时,也有两件事发生:一个(或以上)的destructo 阅读全文
posted @ 2011-05-08 21:30 hailong 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //延时6秒}编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有必要学习——多线程编程。 二、多线程概述 进程和线程都是操作系统的 阅读全文
posted @ 2011-05-08 16:46 hailong 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 复制进去的文字太多,直接按shift点击页面就自动到下一页了~ 阅读全文
posted @ 2011-05-06 20:12 hailong 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 兩個可能性: new 失敗會 throw bad_alloc, 或傳回 0.這兩個可能性會導致兩個結果. 如果 new 拋 bad_alloc, 所有已經成功建構的物件 (如 base class, 其它成員物件) 都會解構. 尚未建構的物件不會建構. Caaa 物件也不會存在.如果 new 傳回 0, 你會有一個完整的物件, 但其內部的成員資料的完整性是個問題 ('total' 不是 0, 但 'ptr' 是 0). 你可以在 initialization list 裡抓成員所拋的 exceptions: Caaa::Caaa(int num, int *p) 阅读全文
posted @ 2011-04-17 20:28 hailong 阅读(690) 评论(1) 推荐(0) 编辑
摘要: 代码贴上:#include <stdlib.h>#include <string.h>#include <time.h>#include <iostream>// using namespace std;int main(){ const char *c = "0123456789abcdefghijklmnopqrstuvwxyz"; srand(static_cast<unsigned int>(time(NULL))); std::cout << "The random char arr 阅读全文
posted @ 2011-04-14 17:12 hailong 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 1、 安装qt-sdk-win-opensource-2009.04.exe, 下载地址:http://qt.nokia.com/downloads/sdk-windows-cpp2、 安装。3、 设置环境变量。(假设安装到D盘) Path里面添加:d:\Qt\2009.04\qt\bin; 新加:QTDIR:d:\Qt\2009.04\qt4、安装Visual Studio 2008 ,必须打补丁SP15、打开 Visual Studio 2008 命令提示 进入Microsoft Visual Studio 9.0\Common7\Tools\目录下,执行vsvars32.bat,执行完, 阅读全文
posted @ 2011-04-09 17:01 hailong 阅读(2441) 评论(1) 推荐(0) 编辑
摘要: 摘自http://blog.sina.com.cn/s/blog_4b687eac0100f0oa.html21 22 ...20 789 1019 612 1118 543 1217 16 1514 13看清以上数字排列的规律,设 1 点的坐标是 (0,0),x 方向向右为正,y 方向向下为正。例如,7 的坐标为 (-1,-1),2的坐标为 (0,1),3 的坐标为 (1,1)。编程实现输入任意一点坐标 (x,y),输出所对应的数字。[Finland某著名通信设备公司 2005 年面试题]规律是什么?规律真的一看就能看出来,问题就在于如何利用它。先来个大点的:43 44 45 46 47 4 阅读全文
posted @ 2011-04-07 22:05 hailong 阅读(416) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>class Sales_item{ friend std::istream& operator>>(std::istream&, Sales_item&); friend std::ostream& operator<<(std::ostream&, const Sales_item&);private: int a;public: Sales_item(int b):a(b){}; Sales_item():a(0){}; //Sales_item operator +(c 阅读全文
posted @ 2011-03-19 19:04 hailong 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 这篇文章很不错!!http://patmusing.blog.163.com/blog/static/13583496020103255219855/典型地,C++通过虚函数实现多态性。多态性的定义:“无论发送消息的对象属于什么类,他们均发送具有相同形式的消息,对消息的处理方式可能随接受消息的对象而变。”具体地说,“在某个基类上建立起来的类的层次结构中,可以对任何一个派生类的对象中的同名成员函数进行调用,而被调用的成员变量所提供的处理可以随其所属的类而改变。”虚函数首先是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。我们先来看看下面的例子:#include <i 阅读全文
posted @ 2011-03-17 21:01 hailong 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 那是很给力啊:关于sizeof ,今天出来讨论下,希望感兴趣的童鞋都来一起讨论。 PS: 由于某些编译器的差异,这里只讨论VC++的情况 sizeof是C/C++下的运算符,可用于任何变量名、类型名或常量值。 sizeof有三种语法形式,如下: 1) sizeof( object ); // sizeof( 对象 ); 2) sizeof( type_name ); // sizeof( 类型 ); 3) sizeof object; // sizeof 对象; 今天主要讨论指针和数组的使用 具体其他的 可以自己查阅MSDN 指针变量的sizeof 指针记录了另一个对象的地址。既然是来存放地址 阅读全文
posted @ 2011-03-16 08:19 hailong 阅读(2364) 评论(0) 推荐(2) 编辑
摘要: 同学让我看了一道题:int getsize(char p[100]="hello"){ return sizeof(p);}int main(int argc, char* argv[]){ char a[200]="hello!"; cout<<sizeof(a)<<endl<<getsize("OK")<<endl; return 0;}第一个返回200,第二个却返回4,sizeof(a)返回数组的大小,而第二个实际上是指针变量的大小,怎么回事呢?在网上看到强人分析的MSDN才知道原 阅读全文
posted @ 2011-03-15 19:56 hailong 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 问题描述:某高校要统计校内学生的各科成绩总分和各门科的平均分,需要编写一个程序来完成输入:多组测试数据,每组测试数据里:第一行是n,k(1<=n<=1e6,1<=k<=1000),n是学生数目,k是科目数。接下来就是n*k个数,每k个就是一个学生所有科目的成绩,是在0-100之间的数输出:对于每组测试数据:第一行输出各学生的成绩总分第二行输出各科平均分(四舍五入到整数)最后多输出一个空行表示分隔样例输入:3 2100 10090 9080 802 390 90 9060 60 602 21 2 3 4样例输出:200 180 16090 90270 18075 75 7 阅读全文
posted @ 2011-03-13 11:30 hailong 阅读(269) 评论(1) 推荐(0) 编辑
摘要: 测试字符串是否是回文字串 1. bool is_palindrome(char *str, int size) 2. { 3. int tmp1 = size-2, tmp2 = (size-1)/2; 4. for (int i = 0; i < tmp2; ++i) 5. { 6. if (str[i] != str[tmp1-i]) 7. return false; 8. } 9. return true; 10. } 然后,不管对应位置的大小写:可以这么写:# bool is_palindrome(char *str, int size) # { # int tmp1 = siz 阅读全文
posted @ 2011-03-11 10:31 hailong 阅读(948) 评论(0) 推荐(0) 编辑
摘要: 表示还是想了一段时间的,C长时间没看比较晕了:#include <iostream>using namespace std;char* reversal(char *test,int size){ char *test1 = new char[size]; int tmp = size-2 ; for (int i = 0; i <= tmp; ++i) { test1[i] = test[tmp-i]; } test1[size-1]='\0'; return test1;}int main(){ char a[]="abcdefg"; 阅读全文
posted @ 2011-03-11 08:14 hailong 阅读(236) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<string.h>using namespace std;#define MAX_VERTEX_NUM 50 //定义最大的结点数typedef enum{DG,UDG}GraphKind; //定义图的种类DG(有向图) UDG(无向图)typedef char VertexData; //定义结点信息的数据类型//定义弧结点typedef struct EdgeNode{int adjvex; //该弧指向顶点的位置VertexData data;EdgeNode *next;}EdgeNode;//定义表头结点 阅读全文
posted @ 2011-03-10 16:04 hailong 阅读(2810) 评论(0) 推荐(0) 编辑
摘要: 程序设计俱乐部看到的:自己又想了想,代码也比较简单吧:#include<iostream>using namespace std;int fun(int a=0,int b=5){ return (a+b);}bool bad(int a,int b,int c){ return a+b<c;}int main(){ for (int c=1; c<50; c++) { for (int b=1; b<100; b++) { for (int a = b>c?(b+1):(c+1); a<100; a++) { if (bad(c,b,a)) brea 阅读全文
posted @ 2011-03-09 20:15 hailong 阅读(397) 评论(0) 推荐(0) 编辑
摘要: string str1 = "123"; string str2 = str1;str1 = "456";cout << "str1 = " << str1 << endl // 輸出 456 << "str2 = " << str2 << endl << endl; // 輸出 123也就是说str1改变,str2并不改变,如果想str1与str2享用同一个字符串空间可以这么改一下: string str1 = "123 阅读全文
posted @ 2011-03-09 09:06 hailong 阅读(215) 评论(2) 推荐(0) 编辑
摘要: 主要学习下简单的构造函数构造:#include <iostream>using std::cout;using std::cin;using std::endl;#include <string>using std::string;using std::getline;class GradeBook{private: string courseName;public: GradeBook():courseName(""){}; GradeBook(string s):courseName(s){}; void setName(string newNa 阅读全文
posted @ 2011-03-08 19:18 hailong 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: 给大家分享一下我第一次参加面试时的一个题目:问题:对于任意一个正整数 N,按以下操作把它转化为一个单一数字(大于 0 小于 10的数):把 N 的各位上数字相加,若得到的结果不是一个单一数字,就把结果的各位上的数字相加,若得到的结果还不是一个一位数,就还把结果的各位上的数字相加,……直到结果为一个单一数字为止。如:23452+3+4+5=141+4=5 结果就为 5。 请写出一个方法,当传入任意一个正整数时,返回它按以上操作所得到的单一数字。这个是刚才一个网友贴出来的,我也想了个方法,就是先把数字转换成string,然后再进行出来,总之就是转来转去吧,代码还是比较少的:#include &l 阅读全文
posted @ 2011-03-08 10:14 hailong 阅读(335) 评论(3) 推荐(0) 编辑
摘要: 想法:a,a+1,...,a+n-1共n个数相加和为n*(2*a+n-1)/2=100简单推论:a<50或a=100;n>=2或n==1因此代码可以写为:#include<iostream> using namespace std;int main(){ for(int i = 2; i < 50; ++i) { int sum = i; for(int j = i+1; j < 50; ++j) { sum += j; if(sum == 100) { for (int k = i; k <= j; ++k) { cout << k &l 阅读全文
posted @ 2011-03-06 09:46 hailong 阅读(566) 评论(0) 推荐(0) 编辑