私は Python/Scala/Haskell コーダーで、C++ を学ぼうとしていますが、C++ のメソッドやクラスの名前の多くが意味をなさないため、何かを覚えるのに苦労しています。これはおそらく、彼らが実際に何をしようとしているのかを理解していないためです。誰でも私のためにこれらを説明できますか:
vector-ベクトルは、リストまたは一連のものと呼ぶのは非常に奇妙なものです。ベクトルする理由unordered_set- 単純に ではないのはなぜsetですか? セットの注文はいつからですか?暗黙的に設定されていないということは、順序が重要ではないことを意味し、代わりに順序付けられたバージョン (Java の TreeSets) を明示的に呼び出す必要がありますordered_setか??vector.cend- cend とはどういう意味ですか? 英語の辞書に cend が見つかりませんでしたか? それを単に終わりと呼ばないのはなぜですか?emplace- emplace とはどういう意味ですか? 「挿入」という言葉の方が適切ではないでしょうか。push_backpush-またはを単純に呼び出さないのはなぜappendですか? 「後ろ」の部分は暗黙的ではありませんか?- なぜ
empty()ブール値を返すのですか? そうではないisEmpty()でしょうか? - また、
.begin()と.end()は矛盾しているようです。begin()は動詞end()ですが、この文脈では名詞です。begin は何かを開始することを示しますが、単に開始へのポインターを返すだけです。start名詞であり、「end」またはbeginning少なくとも代わりにうまくいくメソッドを呼び出すべきではありませんbegin - また、
list.unique私が思っていることはまったくしません -連続した類似アイテムをチョップするだけです!?! (最小の驚きの原則の大きな違反)-おかしなことに、追加のハッシュセットを使用して、線形実行時間でも一意に正しく行うことができます
他にもたくさんありますが、上記を理解すれば、C++ の学習がより簡単になるかもしれません。ありがとう!