随笔分类 -  C++Primer习题

1
摘要:第一章 开始 类型:程序所处理的数据都保存在变量中,而每个变量都有自己的类型 内置类型:语言自身定义的类型(而形如string等类型都是标准库定义的) main的返回值:0表示成功,非0指出错误类型 从命令行运行编译器 for语句 术语表:缓冲区、cerr、clog、表达式 第一部分 C++基础 第 阅读全文
posted @ 2017-11-12 16:30 GGBeng 阅读(2067) 评论(0) 推荐(0) 编辑
摘要:19.1 19.2 allocator类将使用我们自定义的版本替换标准库定义的版本,来获取/释放存储空间。 19.3 (a):失败,pa指向派生类C,而B是C的基类,故无法转换 (b):成功 (c):失败,同(a) 其他人的答案: (a):正确,pa指向C构造的对象的A部分 (b):失败,pb指向的 阅读全文
posted @ 2017-11-08 20:58 GGBeng 阅读(203) 评论(0) 推荐(0) 编辑
摘要:18.1 异常对象的类型: (a):range_error (b):range_error throw p将抛出一个exception类型的异常 18.2 分配的动态内存将无法释放 答案:发生异常,所在块之前的临时变量皆会被销毁,V会调用vector类的析构函数进行销毁,并释放相关内存,P指针会被销 阅读全文
posted @ 2017-11-07 12:35 GGBeng 阅读(226) 评论(0) 推荐(0) 编辑
摘要:17.1 17.2 17.4 17.5 17.6 17.7 倾向于书中的版本,更简洁、灵活 17.8 创建的是使用Sales_data默认构造函数创建的对象 这样的结果就是书名为空,其他数据为0 17.9 (a):后六位为100000,前面58位全为0 (b):后七位为1010101,前面25位全为 阅读全文
posted @ 2017-11-06 12:20 GGBeng 阅读(194) 评论(0) 推荐(0) 编辑
摘要:16.1 知识点:当我们调用一个模板函数时,即向一个模板传递实参,编译器用此函数实参来推断模板实参,并将该模板实参(即实参的类型)绑定到模板参数(即T)。 实例化:编译器用模板实参代替对应的模板参数来创建出一个新“实例”。譬如用int代替T,创建出一个新函数实例。 16.2 16.4 16.5 16 阅读全文
posted @ 2017-11-04 15:02 GGBeng 阅读(258) 评论(0) 推荐(0) 编辑
摘要:15.1 虚函数:基类的成员函数,并在其前面添加关键字virtual,此类函数是基类希望其派生类进行覆盖的函数 15.2 protected:对应受保护成员,派生类可以访问该成员,但其他用户则禁止访问该成员 15.3 1 class Quote { 2 public: 3 Quote() = def 阅读全文
posted @ 2017-11-03 13:13 GGBeng 阅读(325) 评论(0) 推荐(0) 编辑
摘要:14.1 不同点:重载运算符至少有一个操作数是类类型,而且对于部分运算符它无法保留求值顺序或短路求值属性 相同点:对于一个重载运算符来说,其优先级和结合律与对应的内置运算符保持一致 14.2 1 #include <iostream> 2 #include <vector> 3 #include < 阅读全文
posted @ 2017-11-01 21:47 GGBeng 阅读(291) 评论(0) 推荐(0) 编辑
摘要:13.1 拷贝构造函数:这样的一个构造函数,第一个参数是自身类类型的引用,且任何额外参数都有默认值 使用拷贝初始化的情况: 用=定义变量 将一个对象作为实参传递给一个非引用类型的形参 从一个返回类型为非引用类型的函数返回一个对象 用花括号列表初始化一个数组中的元素或一个聚合类中的成员 某些类类型对它 阅读全文
posted @ 2017-10-25 19:29 GGBeng 阅读(219) 评论(0) 推荐(0) 编辑
摘要:12.1 b1和b2各包含4个元素,且这4个元素是b1和b2共享的。 更多:StrBlob的data成员是一个指向string的vector(即vector<string>)的shared_ptr,因此StrBlob的赋值不会拷贝vector的内容,而是多个StrBlob对象共享同一个vector对 阅读全文
posted @ 2017-10-21 20:32 GGBeng 阅读(331) 评论(0) 推荐(0) 编辑
摘要:11.1 map:存储关键字-值(key-value)对的容器,关键字起到索引的作用,值则表示与索引相关联的数据;关键字是唯一、有序存储的 vector:存储单一类型元素的容器;元素是按添加顺序存储的 11.2 list:频繁在任意处插入/删除元素但不要求有随机访问能力时 vector:在尾部插入/ 阅读全文
posted @ 2017-10-20 19:52 GGBeng 阅读(280) 评论(0) 推荐(0) 编辑
摘要:10.1 1 #include <iostream> 2 #include <fstream> 3 #include <iterator> 4 #include <vector> 5 #include <string> 6 #include <deque> 7 #include <list> 8 # 阅读全文
posted @ 2017-10-19 18:49 GGBeng 阅读(251) 评论(0) 推荐(0) 编辑
摘要:9.1 (a):list,因为要频繁地进行任意位置的插入操作 (b):deque,因为只要在头尾位置进行插入/删除操作(相比于list,deque还支持快速随机访问) (c):vector,没有要求进行插入/删除操作 9.2 9.3 两个迭代器begin和end构成一个迭代器范围。 两条限制: 9. 阅读全文
posted @ 2017-10-18 16:31 GGBeng 阅读(300) 评论(0) 推荐(0) 编辑
摘要:8.1&&8.2 1 #include <iostream> 2 #include <vector> 3 #include <string> 4 5 using namespace std; 6 7 istream &func(istream &is) 8 { 9 int val; 10 while 阅读全文
posted @ 2017-10-17 15:19 GGBeng 阅读(234) 评论(0) 推荐(0) 编辑
摘要:7.1 1 #include <iostream> 2 #include <vector> 3 #include <cctype> 4 #include <string> 5 #include <iterator> 6 #include <initializer_list> 7 #include < 阅读全文
posted @ 2017-10-14 12:21 GGBeng 阅读(334) 评论(0) 推荐(0) 编辑
摘要:1.20 头文件: 1 #ifndef SALESITEM_H 2 // we're here only if SALESITEM_H has not yet been defined 3 #define SALESITEM_H 4 5 // Definition of Sales_item cla 阅读全文
posted @ 2017-10-14 11:49 GGBeng 阅读(200) 评论(0) 推荐(0) 编辑
摘要:6.1 形参:与实参有联系的变量,可以是实参的拷贝、引用等。 实参:传递给被调用函数的参数,让调用函数中的值可以给被调用函数使用 6.4 1 #include <iostream> 2 #include <vector> 3 #include <cctype> 4 #include <iterato 阅读全文
posted @ 2017-10-12 21:45 GGBeng 阅读(603) 评论(0) 推荐(0) 编辑
摘要:5.1 空语句:只含有一个单独的分号的语句。 用到空语句的情况:当循环的全部工作在条件部分就可以完成时,我们通常会用到空语句。 5.2 块:复合语句的别称,指用花括号括起来的(可能为空的)语句和声明的序列。 用到块的情况:在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句时,就用块将多条语 阅读全文
posted @ 2017-10-12 17:05 GGBeng 阅读(230) 评论(0) 推荐(0) 编辑
摘要:4.17 传送门 4.18 *++pbeg:先将pbeg加1,然后用加1后的pbeg作为解引用运算符的运算对象。 所以,会从vector的第二个元素开始输出,直至输出最后一个元素的后一个位置(未知)。 4.19 题目意思是:int ival, *ptr; vector<int> vec; (a):判 阅读全文
posted @ 2017-10-04 23:26 GGBeng 阅读(315) 评论(0) 推荐(0) 编辑
摘要:3.2 1 #include <iostream> 2 #include <string> 3 4 using std::cin; 5 using std::cout; 6 using std::endl; 7 using std::string; 8 9 int main() 10 { 11 st 阅读全文
posted @ 2017-10-03 22:36 GGBeng 阅读(562) 评论(0) 推荐(0) 编辑
摘要:2.1 它们占据的最小比特数(最小存储空间)不同,分别为16位、 32位、64位和16位。一般而言,short 类型为半个机器字(word)长,int 类型为一个机器字长(一般编译器会将 int 的位数设置为32位), long 类型为一个或两个机器字长(在32 位机器中,int 类型和 long 阅读全文
posted @ 2017-10-02 16:56 GGBeng 阅读(347) 评论(0) 推荐(0) 编辑

1