标题:顺序表的类模板,有两个类型形参,请问有必要吗?
只看楼主
judy0608
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-8
结帖率:0
已结贴  问题点数:20 回复次数:3 
顺序表的类模板,有两个类型形参,请问有必要吗?
殷人昆《数据结构》,顺序表的类模板,有两个类型形参,请问有必要吗?请高人指点,不胜感激!


template <class T, class E>
class LinearList {
public:
    LinearList(); //构造函数
   ~LinearList(); //析构函数
    virtual int Size() const = 0; //求表最大体积
    virtual int Length() const = 0; //求表长度
    virtual int Search(T x) const = 0;         //搜索
    virtual int Locate(int i) const = 0;        //定位
    virtual E* getData(int i) const = 0;       //取值
    virtual void setData(int i, E x) = 0;       //赋值     
    virtual bool Insert(int i, E x) = 0;                //插入
    virtual bool Remove(int i, E& x) = 0;   //删除
    virtual bool IsEmpty() const = 0;             //判表空
    virtual bool IsFull() const = 0;   //判表满
    virtual void Sort() = 0;   //排序
    virtual void input() = 0;   //输入
    virtual void output() = 0;   //输出
    virtual LinearList<T, E>operator=
    (LinearList<T, E>& L) = 0;   //复制
};
搜索更多相关主题的帖子: 不胜感激 public 
2013-03-08 09:32
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:10 
看设计吧。作者这样写可能有他的原因,没有看过那书,不明真相。。

我行我乐
我的博客:
http://blog.yuccn. net
2013-03-08 16:36
judy0608
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-8
得分:0 
以下是引用yuccn在2013-3-8 16:36:29的发言:

看设计吧。作者这样写可能有他的原因,没有看过那书,不明真相。。

谢谢!

在其他论坛得到的解答是这样的:
E 相当于 value
T 相当于 key

这段代码它想要实现的是 一个用T作为搜索关键字的E的容器的基类

只不过我们一般不这样设计
1、要搜索的话一般用树,不用线性结构;要用线性结构,就一般不提供搜索,只提供遍历

2、输入输出,这种功能一般不会作为类成员,容器的输入应该就是insert,容器的输出应该就是查找、遍历

3、排序,实际开发当中,我们一般不会花大力气开发一个高效的排序算法,如果一组数据有排序的需求,我们通常更倾向于让这组数据在放入容器的时候就有序,而不是等逻辑需要有序的时候再去排序

举个简单的例子
template< class string, class char >
2013-03-08 17:52
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
得分:10 
觉得没必要,你用一个试试,应该没问题。

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-03-09 23:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-400118-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053496 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved