私は現在 C++ を学んでおり、それに付随する標準的なデータ構造に慣れようとしていますが、それらはすべて非常にむき出しに見えます。たとえば、list には、Java で慣れ親しんだ get(index) のような単純なアクセサーがありません。pop_back や pop_front などのメソッドも、リスト内のオブジェクトを返しません。したがって、次のようなことをする必要があります。
Object blah = myList.back();
myList.pop_back();
次のような単純なものの代わりに:
Object blah = myList.pop_back();
Java では、ほぼすべてのデータ構造がオブジェクトを返すため、これらの余分な呼び出しを行う必要はありません。C++ の STL コンテナーがこのように設計されているのはなぜですか? 私が Java で行うこのような一般的な操作は、C++ ではあまり一般的ではありませんか?
編集:申し訳ありませんが、私の質問はこれらすべての反対票を得るには非常に不十分な言葉遣いであったと思いますが、誰かがそれを編集した可能性があります. 明確にするために、Javaと比較して、なぜSTLデータ構造がこのように作成されるのか疑問に思っています。それとも、そもそも間違ったデータ構造のセットを使用していますか? 私の要点は、これらは (私の例では) リストに対して使用する一般的な操作のように見え、誰もが毎回独自の実装を作成したくないということです。
編集:より明確になるように質問を言い換えました。