最近尝试编译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
这里需要强调的一点是,模板文件仅是定义的模板,而非模板的实例,所以,我们对要用到的模块要进行显示声明,再使用,否则编译就会出错。

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

  1. mac版源码编译安装mysql

    mac版源码编译安装mysql 一.基础环境 1.清理环境(清理系统自带的Mariadb和boost) CentOS 7 版本的系统默认自带安装了MariaDB,需要先清理. ##查询已安装的mari ...

  2. 麒麟Kylin V10 桌面版源码编译安装Qt5.6.0

    麒麟Kylin V10 桌面版源码编译安装Qt5.6.0 硬件环境:PHYTIUM FT-2000/4开发板 系统环境:Kylin V10 Desktop 系统 安装包下载:自己所需版本 解压 相关依 ...

  3. APUE第二版源码编译问题解决

    作为C/C++程序员肯定都知道APUE-<Unix环境高级编程>这本书.笔者在互联网上找了个遍 ,准备下个中文第三版,居然没有下载到 全TMD是第二版 冒充第三版,真气人.第二版就第二版呗 ...

  4. opengl编程指南第8版源码编译详细说明

    1. 到:https://github.com/openglredbook/examples 下载完全版的源码examples-master.zip,大小有131MB左右,不要下载缩略版的,否则\bi ...

  5. python 源码编译 without_vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译(示例代码)...

    1 准备 CMake 官网 vcmi 源码 下载 QT5 with mingw 官网 Boost 源码1.55 下载 MSYS2 官网 2 安装 2.1 vcmi源码 目标路径 D:/vcmi/sou ...

  6. Nginx 源码编译

    1.首先在官网下载Nginx 发布版的源码, Nginx 官网下载的地址是 :http://www.nginx.org/en/download.html 因为Nginx官网支持SVN,可以简单方便的使 ...

  7. java象棋人机代码_中国象棋人机对弈Java版源码

    [实例简介] 中国象棋人机对弈Java版源码,包含人工智能实现(含多个难度级别,采用α-β迭代搜索算法) [实例截图] [核心代码] 中国象棋人机对弈Java版源码 ├── boards │   ├─ ...

  8. 优客365导航系统美化UI版源码-带交易功能

    简介: 优客365导航系统美化UI版源码-带交易功能 网盘下载地址: http://kekewangLuo.cc/ZhAFXMbLJ3o0 图片:

  9. PHP仿金蝶云ERP进销存V8网络多仓版源码

    介绍: PHP仿金蝶云ERP进销存V8网络多仓版源码 功能强大 完善图片上传错误 本系统采用PHP+MYSQL开发,B/S架构,方便随地使用,不管是界面上还是功能上都可以说无可挑剔. 系统特色: 1. ...

  10. DPlayer播放器本地化P2P解析加速版源码

    介绍: dplayer播放器本地化P2P加速版源码,提升P2P加速.共享.记忆播放.拖动快进等功能完整优化版 DPlayer适用于于各种CMS,这个快绝版了,有能力自己修改吧. PC端自动P2P加速, ...

最新文章

  1. letswave7中文教程2:脑电数据预处理-通道位置分配
  2. linux ssh rpm包,RHEL6(CentOS6)中使用源码包编译生成RPM的基本方法:升级OpenSSH篇
  3. CodeForces - 1330E Drazil Likes Heap(贪心)
  4. anaconda安装scrapy_Scrapy框架的安装
  5. Using Python with Oracle
  6. Mysql Hunter
  7. 前端学习(3335):ant design中按钮尺寸的大小
  8. redis常用命令(高级篇)
  9. 仿lisp运算 java_华为机试题:仿LISP
  10. 交换机和路由器的区别_秒懂交换机和路由器的功用区别 拷贝
  11. GitKraken漏洞可用于盗取源代码,四大代码托管平台撤销SSH密钥
  12. 基于Python + Redis实现分布式锁
  13. 阿里java面_我的后端Java面经、八面阿里,已拿offer!
  14. maven无法下载依赖问题解决
  15. 快速批量创建文件夹的方法
  16. 怎样解决迅雷下载时的版权限制-两招解决迅雷下载版权限制
  17. 计算机组成原理实验 实验四:多周期CPU实验要求(源代码全)
  18. 微信公众号新变动!你都发现了吗?
  19. 1.点亮一个LED灯
  20. 【数据分析】滴滴数据分析岗实习经验

热门文章

  1. windows下如何在一台机器上安装两个MYSQL数据库
  2. Pandas 基础 (1)—— Series
  3. shell中十种实现自加的方法
  4. Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务
  5. android上下文关系,Android Context上下文的理解 Hua
  6. android游戏课程设计,Miuka「游戏化课程设计」图卡18|好课程如何讲故事的
  7. pygame是python的一个库吗,python学习pygame,,基本库导入impor
  8. linux 内核按键抖动,Tiny4412 Linux驱动之按键(定时器防抖动) | 技术部落
  9. java聊天程序步骤解析_java网络之基于UDP的聊天程序示例解析
  10. linux vscode vim,VSCode Vim进阶操作