4

在学习了大量的 c++ 之后,我现在进入了 STL 容器和算法模板库,我主要关心的是,

1) 这个库在 MS、linux 和其他操作系统等不同平台上是否相同?

2) 程序 c++ 模块的质量或效率会随着 STL 容器和算法的更多使用而降低,我认为我无法根据所有需求对其进行自定义。

3)这个模板库好用在linux系统编程,内核模块中吗?

4)最后我可以在编程比赛中使用它,因为它可以减轻很多编码和压力。

4

3 回答 3

5

1) 这个库在 MS、linux 和其他操作系统等不同平台上是否相同?

不是。除了标准化的接口外,每个编译器套件的实现都是不同的,有时它们还提供自定义扩展,例如hash_map.

2) 程序 c++ 模块的质量或效率会随着 STL 容器和算法的更多使用而降低,我认为我无法根据所有需求对其进行自定义。

我不这么认为。质量和效率应该比自己做饭要好得多,除非你有非常特殊的需要。

3)这个模板库好用在linux系统编程,内核模块中吗?

最好将 C 用于内核。

4)最后我可以在编程比赛中使用它,因为它可以减轻很多编码和压力。

视比赛规则而定。

于 2010-03-10T14:32:43.937 回答
4

1)标准(接口)相同。实现方式不同。

2) 程序的质量或效率仅取决于您的技能。STL 为您提供可以使用和误用的好处。

3) 不适用于内核模块,适用于用户模式应用程序。

4) 通常 C++ 竞赛允许 STL。

于 2010-03-10T14:34:15.080 回答
3

1) API 相同。标准中规定的限制行为(例如 O(n) )。实施供应商特定。意味着您可以依赖应用程序的扩展。

2)只要你不得不问这个问题,你的代码的质量和效率很可能通过使用STL来提高。

3)不在内核中。

4) C++ constests 应该允许 STL。

于 2010-03-10T14:41:39.743 回答