问题标签 [accelerated-c++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 加速C++练习8-5解法不清楚
我一直在解决加速 C++ 练习 8-5,我不想错过本书中的任何一个练习。
加速 C++ 练习 8-5 如下:
重新实现第 7 章中的
gen_sentence
andxref
函数以使用输出迭代器,而不是将它们的整个输出放在一个数据结构中。通过编写将输出迭代器直接附加到标准输出的程序来测试这些新版本,并将结果分别存储在list <string>
和map<string, vector<int> >
中。
为了理解这个问题的范围和本书这一部分的当前知识——这个练习是关于通用函数模板和模板中迭代器使用的章节的一部分。之前的练习是实现<algorithm>
库函数的简单版本,例如equal, find, copy, remove_copy_if
etc。
如果我理解正确,我需要修改xref
函数以便它:
- 使用输出迭代器
- 将结果存储在
map<string, vector<int> >
我试图将映射迭代器作为back_inserter()
,传递给这个函数.begin()
,.end()
但无法编译它。答案在这里解释了原因。
第 7 章中的外部参照函数:
拆分实现:
请帮助了解我错过了什么。
c++ - 定义函数的引用目的
我正在学习加速 C++,并且对第 4 章有疑问。我们在本节中复习引用,我相信我理解它用于操作对象和变量。然而,我真正不明白的是为什么作者使用 & 来重新定义一个已经属于 std 类的函数
这是代码:Student_info.cpp
主文件
有人可以解释为什么我们会这样做吗?仅仅是为了教学上的原因来证明我们可以吗?提前致谢。
c++ - 为什么在尝试读取数字和非数字输入的混合时,某些字符串会被截断,如下面的代码所示?
程序:
输入:
Moo 100 100 100 100 100 100 100 100
Moore 75 85 77 59 0 85 75 89
Norman 57 78 73 66 78 70 88 89
Westerly 43 98 96 79 100 82 97 96
Edwards 77 72 73 80 90 93 75 90
Franklin 47 70 82 73 50 87 73 71
琼斯 77 82 83 50 10 88 65 80
木匠 47 90 92 73 100 87 93 91
输出:
Moo
Moore
orman
Westerly
wards
ranklin
Jones
renter
我开始阅读这本书加速 C++ 并遇到了一段作者代码(第 4 章),它在我的机器上没有按预期工作(上面的示例是缩写的,但遇到了与书中直接代码相同的问题)。目的是打印输入中代表学生成绩的数字行开头的所有名称。实际发生的情况是,有些名字是完整打印的,而另一些名字显然是随机的,从一开始就缺少字母。我希望这里有人可以解释为什么会这样。
我最初的想法是,在未能达到非数字输入的过程中,该行:
不知何故超过了下一个名字的开头,但我很难测试这个,我不确定为什么会发生这种情况。
更新:似乎我在使用 mac 的 clang 编译器时遇到了与这个问题相同的问题。
c++ - Copy Constructor/Assignment Operator
I am learning about automatic conversions in Accelerated C++, and the author states that the copy constructor is always called when you have a statement of the form
Additionally he states that when you have statements of the form
what actually happens is that the myClass constructor that takes an integer as an argument is called to create an unnamed temporary variable of the type myClass, and then the assignment operator is called. The book was written in the year 2000, I believe. My question is whether or not these claims are still true. I learned about the move constructor and move assignment operations elsewhere, and I was wondering if those were called instead of the assignment operator/copy constructor.
Thank you for your time. I really appreciate it.
c++ - 加速 C++ 14-5:自定义字符串类和引用计数器适用于一个构造函数,但不适用于另一个
对于那些熟悉 Accelerated C++ 一书的人,我正在编写问题 14-5 的解决方案,并且遇到了一些我无法解释的有趣行为。
该问题涉及使用自定义字符串和指针/引用计数器类来实现可以连接字符串向量并从中创建图片的程序。
本质上,有问题的程序部分如下:
当我使用注释行时,似乎我的引用计数器无法正常工作:我得到的结果好像每个str
intest
都是空字符串。
以下是我对和类getline
的实现和相关部分:str
ptr
str
班级:
ptr
班级:
该类vec
本质上是std::vector
. 如有必要,我也可以在这里提供这些详细信息。
这是getline:
c++ - 基于商的加速 C++
我正在阅读“加速 C++”一书。在第 2 章的细节中,提供了对两个数的除法和提取商的描述:
x / y
x 和 y 的商。如果两个操作数都是整数,则实现选择是否向零舍入或 - 8
我不明白这一点。“向 [...] - 8 舍入”是什么意思?什么实现使用它,为什么?
好吧,我尝试搜索但没有找到任何东西。
while-loop - 终止 while(cin >> s) 循环。加速 C++
我几乎可以肯定有人问过这个问题,但是经过长时间的搜索,我仍然找不到答案。我从 Accelerated C++ 中提取了这段代码,但在终止while
循环时遇到了问题。代码在这里:
我输入1 2 3 4 5
类型 EOF(MacOS 上的 Ctrl-D)程序不会终止。我可以继续在向量中输入值:
我在这里找到的最接近的问题: http ://www.cplusplus.com/forum/beginner/49993/
c++ - 为什么我们需要在反向 STL 实现中进行交换?加速 C++(问题 8.4)
我试图回答这个问题:为什么我们调用 swap 而不是在 reverse 函数的实现中交换*first
and的值?*last
这是反向功能:
我想在这里澄清我的理解。*first
我尝试直接交换*last
:
我看到这不起作用。然后我试图Bi tmp = *first
获取的值,first
但得到一个编译器错误。除了调用swap
我可以做到这一点的函数之外,还有其他方法吗?我正在寻找在函数本身中执行此操作的方法。
c++ - String 类的 c_str 实现
我正在阅读Accelerated C++ book 关于实现string
类的第 12 章。
有一个章末问题来实现该c_str()
功能。我正在寻找一些想法。
这是我到目前为止所拥有的:
我的第一次尝试是堆分配achar *
并返回它。但这会导致内存泄漏:
这是另一个尝试:
我不能push_back '\0'
数据,因为它不应该改变数据。
这是规格:
返回一个指向数组的指针,该数组包含一个以空字符结尾的字符序列(即一个 C 字符串),表示字符串对象的当前值。
这是本书的实现:(重命名为Str
)。在内部,字符存储在矢量实现 (Vec) 中。
c++ - 加速 C++:架构 x86_64 的未定义符号
我正在使用Accelerated C++,我无法从第 4 章中获取程序进行编译;这是第一个带有标题的。我还从这里下载了源代码,并得到了与我在手动复制的代码中看到的完全相同的错误,所以我不确定问题是什么。
我在 OSX El Capitan 上使用 g++。这是我使用的确切命令:
这是错误:
这是代码:
主文件
等级.h
等级.cpp
学生信息.h
学生信息.cpp
中位数.h
中位数.cpp
非常感谢您的帮助,任何人!