Weiss的数据结构与算法分析(C++版)源码编译说明

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:41   2674   0
最近尝试编译Weiss的那本数据结构与算法分析(C++版)提供的源代码时,遇到一些问题,特记录如下:

考虑到该书提供的代码是使用模板技术较多,这在提供简洁代码的同时,也给源码的编译带来了一些问题。因而我们在编译这些代码时,一定要按照原书的说明来做些转换。
拿邮电英文版(简称dsaa3e)本上的第31页上的Figure 1.20 MemoryCell相关的代码为例来说明一下。

我们先到作者的网站
http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/
下面下载 Unix tar | gzip版本。
cd ~/下载/
wget http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/CodeUnix.tar.gz
tar zxvf CodeUnix.tar.gz -C/home/taoyx/c++/dsaa3e/
cd /home/taoyx/c++/dsaa3e/
在该目录下面找到我们将要测试的这几个文件
MemoryCell.cp MemoryCell.h TestMemoryCell.cpp

阅读相关代码后,考虑到模板MemoryCell的声明和实现是分离的,在引用时,我们按照dsaa3e上的附录说明(P.567),需要添加如下的MemoryCellExpand.cpp

然后使用如下的命令来进行编译:
g++ -g MemoryCellExpand.cpp TestMemoryCell.cpp -o TestMemoryCell
这样就生成可执行文件TestMemoryCell,下面我们在当前目录运行下,
./TestMemoryCell

这里需要强调的一点是,模板文件仅是定义的模板,而非模板的实例,所以,我们对要用到的模块要进行显示声明,再使用,否则编译就会出错。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP