C++
文章平均质量分 90
沙漠之舟tx
勿在浮沙筑高台
展开
-
C++Primer第五版 习题答案 第一章 开始(getting started)
1.1我使用g++,一般将C++程序命名为.cpp。 g++ -o main main.cpp $ g++ -o main main.cpp $ lsmain main.cpp具体参考: http://labor-liber.org/en/gnu-linux/development/index.php?diapo=extensions1.2将返回值改为-1后得到:...原创 2018-07-29 20:59:41 · 6700 阅读 · 13 评论 -
C++Primer第五版 习题答案 第十一章 关联容器(Generic Algorithms)
11.1map是关联容器,其元素是按关键字来保存和访问的;vector是顺序容器,其元素是按它们在容器中的位置来顺序保存和访问的。11.2list:适合插入较多的场景;vector:动态数组的场景;deque:需要头部和尾部增删的场景;map:字典的例子;set:添加忽略关键字的例子。这里实在是想不出好例子11.3#include <map>#include &l...原创 2018-10-08 10:08:17 · 3764 阅读 · 8 评论 -
C++Primer第五版 习题答案 第十二章 动态内存(Dynamic Memory)
12.1b1包含4个元素;b2被销毁。12.2strblob.h#ifndef STRBLOB_H_#define STRBLOB_H_#include <string>#include <initializer_list>#include <memory>#include <vector>#include <stdex...原创 2018-10-15 11:05:40 · 4663 阅读 · 17 评论 -
C++Primer第五版 习题答案 第十三章 拷贝控制(Copy Control)
13.1如果一个构造函数的第一个参数是自身类类型的引用,且任何额外的参数都有默认值,则次构造函数是拷贝构造函数。一个对象作为函数参数,以值传递的方式传入函数体;一个对象作为函数返回值,以值传递的方式从函数返回;一个对象用于给另外一个对象进行初始化(常称为赋值初始化);用花括号列表初始化一个数组中的元素或一个聚合类成员。13.2永远也不会调用成功,为了调用拷贝构造函数,我们需要拷贝...原创 2018-11-18 23:31:15 · 5102 阅读 · 47 评论 -
C++Primer第五版 习题答案 第十八章 用于大型程序的工具(Tools for Large Programs)
练习18.1在下列 throw 语句中异常对象的类型是什么?(a) range_error r("error"); throw r;(b) exception *p = &r; throw *p;(a)range_error;(b)exception。throw p,此时抛出的为指向局部对象的指针,我们几乎可以肯定这是一种错误行为。练习18.2当在指定的位置发生...原创 2019-05-24 18:41:40 · 1616 阅读 · 1 评论 -
C++Primer第五版 习题答案 第十七章 标准库特殊设施(Specialized Library Facilities)
练习17.1定义一个保存三个 int 值的 tuple,并将其成员分别初始化为10、20和30。#include <iostream>#include <tuple>#include <vector>int main(){ std::tuple<int, int, int> threeI(10, 20, 30); std::tu...原创 2019-05-24 22:07:10 · 1753 阅读 · 1 评论 -
C++Primer第五版 习题答案 第十六章 模板与泛型编程(Templates and Generic Programming)
练习16.1给出实例化的定义。实例化:编译器处理过程,用实际的模板实参来生成模板的一个特殊实例,其中参数被替换为对应的实参。当函数模板被调用时,会自动根据传递给它的实参来实例化。而使用类模板时,则需要我们提供显式模板实参。练习16.2编写并测试你自己版本的 compare 函数。#include <iostream>template<typename T&g...原创 2019-05-24 23:23:00 · 3359 阅读 · 6 评论 -
C++Primer第五版 习题答案 第十五章 面向对象程序设计(Object-Oriented Programming)
练习15.1什么是虚成员?虚函数是基类希望其派生类进行覆盖的函数。练习15.2protected 访问说明符与 private 有何区别?派生类的成员函数可以访问protected访问运算符的成员,而不能访问private的。练习15.3定义你自己的 Quote 类和 print_total 函数。Quote_ex03.h#ifndef QUOTE_H_#defin...原创 2019-05-25 08:11:39 · 3807 阅读 · 3 评论 -
C++Primer第五版 习题答案 第十四章 操作重载与类型转换(Overloaded Operations and Conversions)
练习14.1在什么情况下重载的运算符与内置运算符有所区别?在什么情况下重载的运算符又与内置运算符一样?有所区别:当一个重载运算符是成员函数时,this绑定到左侧的运算对象;逻辑与运算符、逻辑或运算符和逗号运算符的运算对象求值顺序规则无法保留下来;&&和||运算符的重载版本也无法保留内置运算符的短路求值属性,两个运算对象总是会被求值。一样:对于一个重载的运算符来说,...原创 2019-05-25 09:15:40 · 2848 阅读 · 10 评论 -
C++Primer第五版 习题答案 第十章 泛型算法(Generic Algorithms)
10.1#include <vector>#include <iostream>#include <algorithm>using namespace std;int main(){ vector<int> v1 = {1,2,3,1,1}; cout << count(v1.cbegin(), v1.cend(),...原创 2018-09-25 00:07:40 · 4344 阅读 · 20 评论 -
C++Primer第五版 习题答案 第九章 顺序容器(Sequential Containers)
9.1(a)list,需要在中间插入数据,list最好; (b)qedue,需要在头部和尾部插入或删除元素,选qedue; (c)vector,没有特别的需求选vector。9.2list<deque<int>> l;9.3两个迭代器begin和end满足如下条件: 它们指向同一个容器中的元素,或者是容器中的最后一个元素之后的位置,且我...原创 2018-09-16 23:26:43 · 5947 阅读 · 35 评论 -
C++Primer第五版 习题答案 目录
C++Primer第五版 习题答案本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 我参考的文章会在文末列出,谢谢大家。第一章...原创 2018-07-29 21:14:38 · 57042 阅读 · 11 评论 -
C++Primer第五版 习题答案 第二章 变量和基本类型(variables and basic types)
2.1C++语言规定一个int至少和一个short一样大,一个long至少和一个int一样大,一个long long至少和一个long一样大。每个的最小尺寸分别为:short,16位;int,16位;long,32位;long long,64位。 除去布尔型和扩展的字符型外,其他整形可以划分为带符号的和无符号的两种。带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。 f...原创 2018-08-05 19:14:23 · 12753 阅读 · 17 评论 -
C++Primer第五版 习题答案 第三章 字符串、向量和数组(Strings, Vectors, and Arrays)
3.13.1.1#include &amp;amp;lt;iostream&amp;amp;gt;using std::cout;using std::endl;int main(){ int i = 50 ,sum = 0; while(i &amp;amp;lt;= 100) { sum += i; ++i; } cout &amp;amp;l原创 2018-08-11 23:47:27 · 8815 阅读 · 34 评论 -
C++Primer第五版 习题答案 第五章 语句(Statements)
5.1最简单的语句是空语句,空语句只有一个单独的分号: ;//null statement 如果在程序的某个地方,语法上需要一条语句但逻辑上不需要,此时应该使用空语句。 5.2复合语句是指用花括号括起来的语句和声明的序列,复合语句也被称作块。 如果在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句,则应使用复合语句。 5.3#include &amp;amp;amp;lt;io......原创 2018-08-26 17:35:51 · 4347 阅读 · 17 评论 -
C++Primer第五版 习题答案 第四章 表达式(Expressions)
4.11054.2(a)*(vec.begin()); (b)(*(vec.begin())) + 1。 4.3可以接受,效率是C++最大的优势。我们要做的是避免类似代码的产生。4.4(((12/3)*4)+(5*15))+((24%4)/2) 91 4.5(a)-86 (b)-18 (c)0 (d)-2 4.6i % 2 == 0 ? ......原创 2018-08-20 22:58:01 · 5367 阅读 · 22 评论 -
C++Primer第五版 习题答案 第六章 函数(Functions)
编写一个函数,令其接受两个参数:一个是int型的数,另一个是int指针。函数比较int的值和指针所指的值,返回较大的那个。可行函数是从候选函数中选出的,有两个特征:一是其形参数量与本次调用提供的实参数量相等,二是每个实参的类型与对应的形参类型相同,或者能转换成形参的类型。为上一题的函数再写三个声明,一个使用类型别名,另一个使用尾置返回类型,最后一个使用decltype关键字。假设 T 是某种类型的名字,说明以下两个函数声明的区别:一个是void f(T), 另一个是 void f(&T)。原创 2018-08-31 22:47:38 · 9518 阅读 · 31 评论 -
C++Primer第五版 习题答案 第七章 类(Classes)
7.1见习题2.41。7.2#ifndef SALES_DATA_H_#define SALES_DATA_H_#include &lt;string&gt;struct Sales_data{ std::string bookNo; unsigned units_sold = 0; double revenue = 0.0; st...原创 2018-09-01 21:49:20 · 9070 阅读 · 47 评论 -
C++Primer第五版 习题答案 第八章 IO库(The IO Library)
8.1std::istream &amp;iofunction(std::istream &amp;is){ std::string s; while(is &gt;&gt; s) std::cout &lt;&lt; s &lt;&lt; std::endl; is.clear(); return is;}8.2原创 2018-09-09 17:04:11 · 3192 阅读 · 4 评论 -
C++Primer第五版 习题答案 第十九章 特殊工具与技术(Specialized Tools and Techniques)
练习19.1使用 malloc 编写你自己的 operator new(sizt_t)函数,使用 free 编写operator delete(void *)函数。#include <cstdlib>#include <new>void *operator new(size_t size){ if(void *mem = malloc(size)) r...原创 2019-05-23 23:40:51 · 1320 阅读 · 0 评论