我是一名 Python/Scala/Haskell 编码器,正在尝试学习 C++,但我很难记住任何东西,因为 C++ 中的许多方法或类的名称对我来说没有任何意义。这可能是因为我不明白他们实际上打算做什么。谁能帮我解释一下:
vector
- 将向量称为列表或事物序列是一件很奇怪的事情。为什么是矢量?unordered_set
- 为什么不简单地一个set
?从什么时候开始订购套装?不隐含地设置意味着顺序无关紧要,而应该显式调用有序版本(java的TreeSets)ordered_set
?vector.cend
- cend 是什么意思?我在英文字典里找不到cend?为什么不简单地称之为结束呢?emplace
- 安置是什么意思?一个更好的词不应该是“插入”吗?push_back
- 为什么不简单地调用push
orappend
?“后退”部分不是隐含的吗?- 为什么
empty()
返回一个布尔值?不应该isEmpty()
吗? - 此外,
.begin()
and.end()
似乎不一致。begin()
是动词,而end()
在这种情况下是名词。begin 表示开始某事,而它只是返回一个开始的指针。不应该调用start
作为名词并且与“end”配合得很好的方法,或者beginning
至少而不是begin
- 此外,
list.unique
根本不像我认为的那样做 - 它只是连续相似物品的印章!?!(严重违反最小惊讶原则)-有趣的是,您也可以使用额外的哈希集在线性运行时正确地做到唯一
我还有很多,但如果我了解以上内容,我可能会更轻松地学习 C++。谢谢!