-
大小: 98KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-12
- 语言: C/C++
- 标签: c++ language programming 《The
资源简介
《The c++ programming language 》的习题答案
代码片段和文件信息
/* Code for exercise 10.12.
|
| “C++ Solutions--Companion to The C++ Programming Language Third Edition“
| by David Vandevoorde; Addison-Wesley 1998; ISBN 0-201-30965-3.
|
| Permission to use copy modify distribute and sell this software
| and its documentation for any purpose is hereby granted without fee.
| The author makes no representations about the suitability of this
| software for any purpose. It is provided “as is“ without express or
| implied warranty.
‘----------------------------------------------------------------------*/
#include
#include
/* The following can go in a header file */
#include
#include
struct Char_queue {
inline Char_queue(unsigned capacity = default_capacity);
~Char_queue() { delete[] queue_; }
bool empty() const { return head_==tail_; }
inline char dequeue();
inline void enqueue(char);
bool full() const { return head_==(tail_+1)%capacity_; }
static bool const fixed_capacity = true;
private:
static unsigned const default_capacity = 32;
char *queue_;
unsigned head_ tail_;
unsigned const capacity_;
};
inline
Char_queue::Char_queue(unsigned n)
: queue_(new char[n+1]) head_(0) tail_(0) capacity_(n+1) {
}
inline
char Char_queue::dequeue() {
if (!empty()) {
char c = queue_[head_];
head_ = (head_+1)%capacity_;
return c;
} else
throw std::underflow_error(std::string(“queue“));
}
inline
void Char_queue::enqueue(char c) {
if (!full()) {
queue_[tail_] = c;
tail_ = (tail_+1)%capacity_;
} else
throw std::overflow_error(std::string(“queue“));
}
/* Header file would stop here. */
/* A brief test of the above implementation: */
int main() {
Char_queue q(4);
while (1) {
if (q.empty()) { std::cout << “Queue is empty.\n“; }
else if (q.full()) { std::cout << “Queue is full.\n“; }
char cmd ch;
std::cin >> cmd;
try {
switch (cmd) {
case ‘e‘: case ‘E‘:
std::cin >> ch;
q.enqueue(ch);
break;
case ‘d‘: case ‘D‘:
std::cout << “Dequeued “ << q.dequeue() << ‘\n‘;
break;
case ‘q‘: case ‘Q‘:
std::cout << “Quitting!\n“;
return 0;
default:
std::cerr << “Invalid command!\n“;
}
} catch (std::exception &x) {
std::cerr << “Caught exception “ << typeid(x).name()
<< “ (“ << x.what() << “)\n“;
}
}
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 1998-09-22 16:14 Ch10\
文件 2626 1998-09-06 19:29 Ch10\ex10_12a.cpp
文件 1970 1998-09-06 19:30 Ch10\ex10_5.cpp
文件 807 1998-09-06 19:29 Ch10\ex10_15.cpp
文件 2703 1998-09-06 19:30 Ch10\ex10_19.cpp
文件 2890 1998-09-06 19:29 Ch10\ex10_12b.cpp
目录 0 1998-09-22 16:14 Ch11\
文件 1195 1998-09-06 19:32 Ch11\ex11_8.cpp
文件 2263 1998-09-06 19:30 Ch11\ex11_1.cpp
文件 781 1998-09-06 19:31 Ch11\ex11_10.cpp
文件 1624 1998-09-06 19:31 Ch11\ex11_4.cpp
文件 5176 1998-09-06 19:43 Ch11\str.hpp
文件 1014 1998-09-06 19:31 Ch11\ex11_21.cpp
目录 0 1998-09-22 16:14 Ch12\
文件 1072 1998-09-06 19:32 Ch12\ex12_1a.cpp
文件 1031 1998-09-06 19:32 Ch12\ex12_1b.cpp
文件 3139 1998-09-06 19:32 Ch12\ex12_10.cpp
文件 1378 1998-09-06 19:32 Ch12\ex12_9.cpp
目录 0 1998-09-22 16:14 Ch13\
文件 934 1998-09-06 19:33 Ch13\ex13_15.cpp
文件 4753 1998-09-06 19:33 Ch13\ex13_2.cpp
目录 0 1998-09-22 16:14 Ch14\
文件 2046 1998-09-06 19:33 Ch14\ex14_1.cpp
文件 3487 1998-09-06 19:33 Ch14\ex14_2.cpp
文件 1627 1998-09-06 19:33 Ch14\ex14_10.cpp
目录 0 1998-09-22 16:14 Ch15\
文件 3041 1998-09-06 19:33 Ch15\ex15_2.cpp
目录 0 1998-09-22 16:14 Ch15\Ex15_3\
文件 869 1998-09-06 19:46 Ch15\Ex15_3\Pla
文件 1365 1998-09-06 19:44 Ch15\Ex15_3\Board.H
文件 2939 1998-09-06 19:44 Ch15\Ex15_3\Board.C
............此处省略111个文件信息
相关资源
- sha256-512加密算法
- NTFS数据恢复的c++类代码
- 矩阵连乘问题C++代码
- 用Socket 实现http协议
- RC4在C++中运行的代码
- c++primerplus第六版源码
- VC++ 串口实现双机互联 包含视窗加代
- C++面向对象程序设计第6版美Walter Sa
- Visual C++ MFC Web 浏览器
- 宇视科技2017C/C++开发笔试题
- c++字典列表
- linux下的C语言POSIX正则表达式头文件和
- C++源代码飞机订票系统
- VC++ MFC 如何用 CZip CUnzip类压缩解压缩
- C++课程设计选课系统
- 遗传算法C++实现若干
- Oracle 84%安装报错compat-libstdc++-33-3.2.
- c++实现的双向通信的socket小程序
- OpenGL纹理贴图源程序.rar
- 《Qt 5.9 C++开始指南》2.2节 可视化UI设
- C++本科作业--模拟动物园
- C++ 编写的杀毒软件
- Visual C++开发基于SNMP的网络管理软件
- c/c++中文帮助文档API
- Marching cubes C++ 源代码
- Vc++6.0MFC入门教程,很好的资源。
- VC++6.0 MFC 超简易计算器
- C++画数学函数图象
- c++实现数字转换英文无and
- c++利用数组实现简单的奇偶校验
评论
共有 条评论