在学习了大量的 c++ 之后,我现在进入了 STL 容器和算法模板库,我主要关心的是,
1) 这个库在 MS、linux 和其他操作系统等不同平台上是否相同?
2) 程序 c++ 模块的质量或效率会随着 STL 容器和算法的更多使用而降低,我认为我无法根据所有需求对其进行自定义。
3)这个模板库好用在linux系统编程,内核模块中吗?
4)最后我可以在编程比赛中使用它,因为它可以减轻很多编码和压力。
在学习了大量的 c++ 之后,我现在进入了 STL 容器和算法模板库,我主要关心的是,
1) 这个库在 MS、linux 和其他操作系统等不同平台上是否相同?
2) 程序 c++ 模块的质量或效率会随着 STL 容器和算法的更多使用而降低,我认为我无法根据所有需求对其进行自定义。
3)这个模板库好用在linux系统编程,内核模块中吗?
4)最后我可以在编程比赛中使用它,因为它可以减轻很多编码和压力。
1) 这个库在 MS、linux 和其他操作系统等不同平台上是否相同?
不是。除了标准化的接口外,每个编译器套件的实现都是不同的,有时它们还提供自定义扩展,例如hash_map
.
2) 程序 c++ 模块的质量或效率会随着 STL 容器和算法的更多使用而降低,我认为我无法根据所有需求对其进行自定义。
我不这么认为。质量和效率应该比自己做饭要好得多,除非你有非常特殊的需要。
3)这个模板库好用在linux系统编程,内核模块中吗?
最好将 C 用于内核。
4)最后我可以在编程比赛中使用它,因为它可以减轻很多编码和压力。
视比赛规则而定。
1)标准(接口)相同。实现方式不同。
2) 程序的质量或效率仅取决于您的技能。STL 为您提供可以使用和误用的好处。
3) 不适用于内核模块,适用于用户模式应用程序。
4) 通常 C++ 竞赛允许 STL。
1) API 相同。标准中规定的限制行为(例如 O(n) )。实施供应商特定。意味着您可以依赖应用程序的扩展。
2)只要你不得不问这个问题,你的代码的质量和效率很可能通过使用STL来提高。
3)不在内核中。
4) C++ constests 应该允许 STL。