- 博客(9)
- 收藏
- 关注
原创 C++Primer 第十六章 模板与泛型编程 习题答案
编译器用推断出的模板参数为我们实例化一个特定版本的函数,当编译器实例化一个模板时,它使用实际的模板实参代替对应的模板参数来创建一个新的实例。
2023-03-16 17:52:22
252
原创 C++Primer 第十五章 面向对象程序设计 习题答案
如果D继承B的方式时公有的或保护的,则D的派生类的成员和友元可以使用D向B的转换,所以drived_from_public合法,drived_from_private非法。新对象的shared_ptr的引用计数加1,原对象的shared_ptr的引用计数减1。拷贝:会调用合成的拷贝构造函数,拷贝Query的数据成员,成员q由于是shared_ptr,其引用计数会加1.销毁:调用合成的析构函数,shared_ptr的引用计数减1,如果其引用计数减至0,则会释放它指向的内存。©错误,声明不用写出它的派生列表。
2023-03-10 20:48:58
323
原创 C++Primer 第十四章 重载运算与类型转换 习题答案
当运算符作用会类类型的运算对象时,可以通过运算符重载重新定义该运算符的含义。重载运算符函数必须是类的成员或者至少包含一个类类型的参数。对于一个重载的运算符而言,其优先级和结合律与对应的内置运算符保持一致。Sale_data.hsales_data.cpp14.3(1)string(2)string(3)vector(4)string(a)非类成员(b)类成员©类成员(d)类成员(e)非类成员(f)非类成员(g)非类成员(h)类成员.h.cpp14.7.h.cpp14.1
2023-03-08 15:42:45
265
原创 C++Primer 第十三章 拷贝控制 习题答案
函数的参数 accum 是按值传递的,如果是值传递,参数在函数调用时会被复制一份,函数结束时,这个副本也会被销毁。否则为了调用拷贝构造函数,我们必须拷贝它的实参,但为了拷贝实参,我们又需要调用拷贝构造函数,如此无限循环。未定义拷贝构造函数,会发生浅拷贝的问题,合成拷贝构造函数会使两个指针指向同一片内存空间,删除的时候会删除两次。需要跟13.22一样的操作,先拷贝,再删除,在赋值,不需要析构是因为只能指针有自己的计数功能。需要,否则会造成浅拷贝的问题,即多个对象指向同一片内存空间,在对象销毁时导致多次山粗。
2023-03-05 21:40:54
271
原创 C++Primer 第十二章 动态内存 习题答案
:size_type size_type是一个无符号整型数,是大于等于0的。(b)编译时合法,pi不是new出来的,因此销毁时使用默认delete会出错。(d)编译时合法,ix不是new出来的,因此销毁时使用默认delete会出错。(f)错误,某个时刻只能有一个unique_ptr指向一个给定对象。对前面部分,r指向的42的内存空间没有被释放掉,对于内置类型,默认初始化的对象的值是未定义的。(a)合法,调用sp并且结束后释放掉它的内存。后面部分,正常,r2指向的42被自动释放。
2023-03-01 09:15:54
167
原创 C++Primer 第十一章 关联容器 习题答案
pos.first->second是因为map中的元素是以pair对象的方式存在的,不是类的对象,所以使用second来获取其中的size_t元素值。无序容器使用了哈希函数和关键字类型的==运算符,在关键字类型的元素没有明显的序关系的情况下,维护元素的序代价非常高昂,此时无序容器很有用。例如,实现双端队列时。
2023-02-23 20:31:18
229
原创 C++Primer 第十章 泛型算法 习题答案
因此,当fill_n试图为vec的前10个元素赋值时,它会遇到未构造的内存,这是未定义行为。此外,泛型算法的设计思想是尽可能通用,因此不应该假定容器的大小会保持不变.inserter创建一个使用Inserter的迭代器,此函数接受第二个参数,必须是一个指向给定容器的迭代器,元素被插入到给定迭代器表示元素之前。back_inserter是插入迭代器,也就是迭代器的一部分,不属于算法。随机访问迭代器:可读写,多遍扫描,支持全部迭代器运算。双向迭代器:可读写,多遍扫描,可递增递减。vector:随机访问迭代器。
2023-02-21 19:13:35
274
原创 C++Primer 第九章 顺序容器 习题答案
由于list不要求对元素的随机存取,因此不用额外分配空间,也就没有capacity函数。iter指向奇数的情况下会无线循环,加入当前指向一个奇数,那么会在iteration之前插入一个奇数,然后返回指向插入的新元素的迭代器,陷入循环。容器的size是指它已经保存的元素的数目;1.begin和and指向同一个容器中的元素,或者是容器最后一个元素之后的位置,当将一个容器初始化为另一个容器的拷贝时,两个容器的容器类型和元素类型必须相同。c1,c2不能是无序容器,类型相同,必须保存相同类型的元素。
2023-02-19 15:25:35
271
原创 C++Primer 第八章 IO库 习题答案
const是因为对象的值不应该改变,引用可以避免拷贝,提高效率。bad、fail和eof其中一个在对应错误位被置位时。类内成员string和vector可以自己进行初始化。
2023-02-16 15:45:21
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人