【发布时间】:2010-10-12 21:15:36
【问题描述】:
最近,在阅读了this 的博文后,我的脑海中出现了一个危险的想法。这个想法可以这样表达:
我不需要 C++ 标准库提供的大部分内容。那么,我为什么不实现一个不太通用但更易于使用的版本呢?
例如,使用 STL 会产生大量难以理解的编译器错误。但是,我不关心分配器、迭代器等。那么我为什么不花几个小时来实现一个易于使用的链表类呢?
我想从 StackOverflow 社区了解的是:对于 C++ 中的大多数现有功能,“自行开发”有哪些危险、可能的缺点和可能的优点?
编辑:我觉得人们误解了我的这个想法。我的想法是了解我是否可以实现一个非常小的 STL 功能集,大大简化了 - 更多的是作为一个项目来教我数据结构等。我不建议从头开始重新发明整个轮子,只是我需要和想要了解的部分。 我想我想弄清楚的是,使用 STL 的复杂性是否需要创建更小、更简单的版本。
重复使用 boost 或类似方法。
我编写的大部分代码都是为大学编写的,我们不允许使用外部库。所以要么是 C++ 标准库,要么是我自己的类。
这个问题的客观性。
这个问题不是主观的。它也不应该是社区 Wiki,因为它不是民意调查。我想要具体的论据来突出我的方法可能可能出现的一个优点或一个缺点。与流行的看法相反,这不是意见,而是基于经验或良好的逻辑论证。
格式。
请每个答案只发布一个缺点或一个优点。这将允许人们评估单个想法,而不是一次评估您的所有想法。
请...
没有宗教战争。我不是任何语言的粉丝。我使用任何适用的。对于图形和数据压缩(我目前正在做的工作),这似乎是 C++。请限制您对该问题的回答,否则他们将被否决。
【问题讨论】:
-
如果你这么不喜欢 C++,请放下骄傲,使用 STL 来完成你的任务,然后永远不要回到 C++。解决您的问题并为您节省大量时间。
-
天啊。否决票是怎么回事?为什么人们不再陈述他们的理由?我只是不明白为什么这是一个糟糕的问题。
-
我认为您将 C++ 与 STL 混淆了。前者是一种语言,后者——尽管是标准的一部分——只是一个提供的库,因此您不必从头开始编写所有内容。
-
您声明您的问题不是主观的,但您自己使用了一些主观的术语和短语(例如,您开始说您不喜欢 C++,这是一个非常主观的短语!)。这引起了主观的回答。请改写或使问题主观。
-
是时候提出另一个好主意/坏主意了。好主意:编写自己的 C++ 编译器。坏主意:用 COBOL 编写自己的 C++ 编译器。
标签: c++ code-reuse standard-library