
C++ Primer练习题
文章平均质量分 73
CCSUZB
吾生也有涯,而知也无涯
展开
-
13.6-14.8读书笔记
不同类型可能具有相同的调用形式// 普通函数 int add(int i , int j) {} // lambda,产生一个未命名函数对象类 auto mod = [ ](int i , int j) {} // 函数对象类 struct divide {};// 构建从运算符到函数指针的映射关系,其中函数接受两个int,返回一个int map < string , int(*)(int , int) > binops;但是我们不能将mod或者divide存入binops,因为mod是个。原创 2023-01-02 22:16:40 · 462 阅读 · 1 评论 -
11.1 -11.3章读书笔记
解释map和set的区别。你如何选择使用哪个?map 是键值对,而 set 只有键没有值。当我需要存储键值对的时候使用 map,而只需要键的时候使用 set。解释set和list 的区别。你如何选择使用哪个?set 是有序不重复集合,底层实现是红黑树,而 list 是无序可重复集合,底层实现是链表。定义一个map,关键字是家庭的姓,值是一个vector,保存家中孩子(们)的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。= "@q";)= "@q";)原创 2022-11-27 21:28:08 · 277 阅读 · 0 评论 -
9.4-9.6 章读书笔记
string s(s2, pos2, len2) s是从string s2从下标pos2开始len2字符的拷贝。string s(s2, pos2) s是string s2从下标pos2开始的字符的拷贝。string s(cp, n) s是指向数组中前n个字符的拷贝。原创 2022-11-27 21:13:42 · 241 阅读 · 0 评论 -
9.1-9.3读书笔记
对于下面的程序任务,vector、deque和list哪种容器最为适合?解释你的选择的理由。如果没有哪一种容器优于其他容器,也请解释理由。(a) 读取固定数量的单词,将它们按字典序插入到容器中。我们将在下一章中看到,关联容器更适合这个问题。(b) 读取未知数量的单词,总是将单词插入到末尾。删除操作在头部进行。© 从一个文件读取未知数量的整数。将这些数排序,然后将它们打印到标准输出。(a) list ,因为需要频繁的插入操作。(b) deque ,总是在头尾进行插入、删除操作。原创 2022-10-23 16:39:55 · 114 阅读 · 0 评论 -
7.6-8.3读书笔记
编写函数,接受一个istream&参数,返回值类型也是istream&。完成这些操作后,在返回流之前,对流进行复位,使其处于有效状态。编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中。与类本身相关,而不是与类的各个对象相关的成员是静态成员。静态成员能用于某些场景,而普通成员不能。如果 badbit、failbit、eofbit 的任一个被置位,那么检测流状态的条件会失败。什么是类的静态成员?静态成员与普通成员有何区别?原创 2022-10-16 21:44:27 · 276 阅读 · 0 评论 -
7.3-7.5读书笔记
解释下面代码的含义,说明其中的Type和initVal分别使用了哪个定义。如果我们把第256页Screen类的pos的typedef放在类的最后一行会发生什么情况?类型名的定义通常出现在类的开始处,这样就能确保所有使用该类型的成员都出现在类名的定义之后。如果成员使用了外层作用域中的某个名字,而该名字代表一种类型,则类不能在之后重新定义该名字。定义一对类X 和Y,其中X 包含一个指向 Y 的指针,而Y 包含一个类型为 X 的对象。下面的初始值是错误的,请找出问题所在并尝试修改它。原创 2022-10-10 09:52:14 · 417 阅读 · 0 评论 -
6.7-7.2 读书笔记
为什么read函数将其Sales_data参数定义成普通的引用,而print函数将其参数定义成常量引用?因为read函数会改变对象的内容,而print函数不会。在下面这条if语句中,条件部分的作用是什么?read 函数的返回值是 istream 对象,if语句中条件部分的作用是从输入流中读取数据给两个data对象。编写一个构造函数,令其用我们提供的类内初始值显式地初始化成员。原创 2022-09-25 22:36:40 · 348 阅读 · 0 评论 -
4.1-4.12读书笔记
如果 someValue的值为真,x 和 y 的值都自增并返回 y 值,然后丢弃 y 值,y递减并返回 y 值。如果一台机器上 int 占 32 位、char 占8位,用的是 Latin-1 字符集,其中字符’q’ 的二进制形式是 01110001,那么表达式’q’ ...原创 2022-08-28 22:51:38 · 321 阅读 · 0 评论 -
3.1-3.3 读书笔记
要根据for循环中的代码来看是否合法,c是string 对象中字符的引用,s是常量。因此如果for循环中的代码重新给c赋值就会非法,如果不改变c的值,那么合法。(1)string:类似 is >> s 的读取,string对象会忽略开头的空白并从第一个真正的字符开始,直到遇见下一空白为止。下列vector对象的定义有不正确的吗?对于不正确的,说明其错误的原因。如果想定义一个含有10个元素的vector对象,所有元素的值都是42,请例举三种不同的实现方法,哪种方式更好呢?如果合法,c的类型是什么?...原创 2022-08-07 22:36:53 · 142 阅读 · 0 评论 -
第2章 变量和基本类型读书笔记
解释下列定义的含义,对于非法的定义,请说明错在何处并将其改正。(a)std(a)应该先定义再使用。std(b)用列表初始化内置类型的变量时,如果存在丢失信息的风险,则编译器将报错。©在这里wage是未定义的,应该在此之前将其定义。(d)不报错,但是小数部分会被截断。下列变量的初值分别是什么?stdintmain(){std}这里是引用global_int是全局变量,所以初值为0。......原创 2022-08-01 09:03:18 · 224 阅读 · 0 评论 -
C++ Primer 12章练习
12.2 StrBlob类的实现class StrBlob{public: typedef vector&amp;amp;amp;lt;string&amp;amp;amp;gt;::size_type size_type; StrBlob():data(make_shared&amp;amp;amp;lt;vector&amp;amp;amp;lt;string&amp;amp;amp;gt;&am原创 2019-01-01 17:19:26 · 239 阅读 · 0 评论 -
C++ Primer第十章练习题
###10.23 bind函数的使用bool isLesser(const string &amp;s, string::size_type sz){ return s.size() &lt; sz;}int main(){ vector&lt;string&gt; authors{ "Mooophy", "pezy", "原创 2018-12-30 12:01:09 · 319 阅读 · 0 评论