gpt4 book ai didi

c++ - 仅对 STL 容器使用 C++ 是一种不好的做法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:33 24 4
gpt4 key购买 nike

首先介绍一下背景......

在下文中,我使用 C、C++ 和 Java 编写(通用)算法,而不是带有界面的 gui 和花哨的程序,而是简单的命令行算法和库。

我开始学习 Java 编程。我对 Java 非常满意,并且我学会了如何使用 Java 容器,因为它们往往会降低簿记的复杂性,同时保证出色的性能。我断断续续地用过C++,但我用它肯定不如用Java,而且感觉很麻烦。我对 C++ 的了解还不足以在不查找每个函数的情况下使用它,所以我很快又回到了尽可能多地坚持使用 Java。

然后我突然转向汇编语言的破解和黑客攻击,因为我觉得我过于关注一种太高级的语言,我需要更多关于 CPU 如何与内存交互以及真正发生的事情的经验与 1 和 0。我不得不承认,这是我迄今为止使用计算机获得的最具教育意义和乐趣的体验之一。

出于明显的原因,我不能每天使用汇编语言编写代码,它主要用于消遣。通过这次经历对计算机有了更多的了解之后,我意识到 C++ 比 Java 更接近“1 和 0 的水平”,但我仍然觉得它非常迟钝,就像一把瑞士军刀,上面有太多太多的东西。小发明来优雅地完成任何一项任务。我决定尝试一下普通的 Vanilla C,我很快就爱上了它。它是介于简单性和足够的“微观管理器”之间的一个愉快的媒介,不会抽象出真正发生的事情。但是,我确实错过了有关 Java 的一件事:容器。特别是,一个动态扩展大小的简单容器(如 STL vector )非常有用,但每次都必须在 C 中实现非常痛苦。因此,我的代码目前看起来几乎完全是 C 语言,带有来自 C++ 的容器,这是我使用 C++ 的唯一功能。

我想知道在实践中仅使用 C++ 的一个功能并忽略其余功能以支持 C 类型代码是否可行?

最佳答案

简短的回答是,“这并不是使用 C++ 的最有效方法。”

如果使用得当,强类型系统、通过引用传递的能力以及像 RAII 这样的习语使 C++ 程序更可能是正确的、可读的和可维护的。

没有人能阻止您以自己喜欢的方式使用语言。但是您可能会因为不学习和利用实际的 C++ 功能而限制自己。

如果您编写的代码需要其他人阅读和维护,他们可能会喜欢使用“真正的 C++”而不是“带类的 C”(用之前评论者的话说)。

关于c++ - 仅对 STL 容器使用 C++ 是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com