一个最简答的程序,练练手,结果是vs2010的系统库文件ctype.h出问题了,重装了vs2010,换成vs2008,google了n篇文章还是不知道这个bug怎么处理,留在这里放到小强的vc 6.0试试怎么样,搞的一夜没睡,不是问题困扰的,而是实验室的被子那是没法睡,睡了几分钟,脏的我全身是痒,就这么看了一夜的《职来职往》,没多大收获,最恐怖了,耗着时间看着热闹,还是回寝室洗个澡上课去...
今天(20110920)Bug全部修复好了,代码详单如下:
InsertSort.h
/*
*宏定义,条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译
*/
#ifndef INSERTSORT_H//先测试INSERTSORT_H是否被宏定义过
#define INSERTSORT_H//如果INSERTSORT_H没有被宏定义过,定义INSERTSORT_H,并编译下面的程序段
#include <vector>
usingnamespace std;
class InsertSort
{
private:
int len;
vector<int> list;
public:
//InsertSort();//默认的构造函数
InsertSort(vector<int> _list);//重载的构造函数
void insert_sort();
voidout();
};//一定要加“;”
#endif
InsertSort.cpp
#include "InsertSort.h"
#include <iostream>
usingnamespace std;
InsertSort::InsertSort(vector<int> _list)
{
for (int i=0;i<_list.size();i++)
list.push_back(_list[i]);
}
void InsertSort::insert_sort()
{
int insertNum;
for (int i=0;i<list.size();i++)
{
insertNum=list[i];
int j = i;
while(j>0&&insertNum<list[j-1])
{
list[j] = list[j-1];
j--;
}
list[j] = insertNum;
}
}
void InsertSort::out()
{
for(int i=0;i< list.size(); i++)
{
cout<< list[i]<<"";
//if((i+1)%18==0)
// cout<<endl;
}
cout<<endl;
}
void main()
{
vector<int> _list;
_list.push_back(2012);
_list.push_back(2008);
_list.push_back(2011);
_list.push_back(2009);
_list.push_back(2010);
cout<<"排序前序列:"<<endl;
for(int i=0; i < _list.size(); i++)
{
cout<<_list[i]<<"";
}
InsertSort is(_list);//采用调用构造函数的重载函数来创建新的对象
is.insert_sort();
cout<<endl<<"排序后序列:"<<endl;
is.out();
getchar();
}
输出结果: