由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 包子问使用C templates Sort data的问题
相关主题
一个C++ template的问题问个c++的template的问题
一个C的void指针的问题大家新年好。 请教一个 c interview question
{C语言}请教如何通过变量访问结构体内的各个属性请教一个c++ 里functor的问题
关于c++的效率再给个例子error C2223: left of '->GetEnv' must point to struct/union (转载)
菜鸟读C++ STL源程序的疑问C++ Q04: template member
STL 一问a careercup question
共享我的C++面试题目精选Question in C++ complex number implementation
INIT_WORK从Linux kernel 2.6.20后改了?One question about Void pointer
相关话题的讨论汇总
话题: surname话题: sort话题: person话题: void话题: emp
进入Programming版参与讨论
1 (共1页)
h*******3
发帖数: 3775
1
有一组数据,其中的fied有surname, department,payRate,等等
要求是按照surname 从A 到Z 排列这组数据。排列的方法是straight insertion
我现在的方法已经可以sort surname, department,但是如何能把他改成templates呢?
这样就能用来sort 任何数据。
我的目前sort的方法是这样的:
struct emp
{
char surname[15];
char given[15];
char depart[20];
double payRate;
char eyeColor[10];
};
void sort(struct emp person[], int nums, compare cmp, copy cpy)
{
void *key;
int j, i, flag;
struct emp temp;
for (j = 1; j < nums; j ++)
{
i = j - 1;
(*cpy)(key, (person + j));
temp = person[j];
flag = -1;
while(flag)
{
if ((*cmp)(key, (person + i)) >=0)
{
person[i + 1] = temp;
flag = 0;
}
else
{
person[i + 1] = person[i];
i --;
if(i == -1)
{
person[0] = temp;
flag = 0;
}//end if
}//end else
}//end while

}//end for

}//end sort
int cmp_surname(void* p, void* q)
{
char p1[30];
p = p1;
struct emp *q1 = q;
return strcmp(p, q1 ->surname);
}
void cpy_surname(void* p, void* q)
{
char p1[30];
p = p1;
struct emp *q1 = q;
strcpy(p, q1 ->surname);
}
我知道用templates的话,应该templates
但是具体的sort方法该怎么修改呢?
研究了好久,网上的例子都是简单地比较两个integer啥的。
希望版上的可以指点一下,包子答谢。
谢谢啦!
1 (共1页)
进入Programming版参与讨论
相关主题
One question about Void pointer菜鸟读C++ STL源程序的疑问
用c怎么实现generic stack (转载)STL 一问
这段C++程序有错吗?共享我的C++面试题目精选
C 里面有办法永久改变一个指针的属性吗?INIT_WORK从Linux kernel 2.6.20后改了?
一个C++ template的问题问个c++的template的问题
一个C的void指针的问题大家新年好。 请教一个 c interview question
{C语言}请教如何通过变量访问结构体内的各个属性请教一个c++ 里functor的问题
关于c++的效率再给个例子error C2223: left of '->GetEnv' must point to struct/union (转载)
相关话题的讨论汇总
话题: surname话题: sort话题: person话题: void话题: emp