是跨平台和性能的c ++ STL算法和容器?

时间:2010-03-10 14:29:17

标签: c++ stl-algorithm stl

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

1)这个库在MS,linux等其他平台上的不同平台上是否相同?

2)程序c ++模块的质量或效率会随着STL容器和算法的使用而减少,我想我无法根据所有需要对其进行定制。

3)这个模板库是否适合在linux系统编程,内核模块中使用?

4)最后我可以在编程竞赛中使用它,因为它重复了大量的编码和压力。

3 个答案:

答案 0 :(得分:5)

  

1)这个库在MS,linux等其他平台上的不同平台上是否相同?

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

  

2)程序c ++模块的质量或效率会随着STL容器和算法的使用而减少,我想我无法根据所有需要对其进行定制。

我不这么认为。除非你有非常特殊的需求,否则质量和效率应该比你自己做的更好。

  

3)这个模板库是否适合在linux系统编程,内核模块中使用?

更好地使用C作为内核。

  

4)最后我可以在编程竞赛中使用它,因为它重复了大量的编码和压力。

取决于比赛的规则。

答案 1 :(得分:4)

1)标准(接口)是相同的。实施方式不同。

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

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

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

答案 2 :(得分:3)

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

2)只要您不得不提出这些问题,您的代码的质量和效率就可以通过使用STL来改善。

3)不在内核中。

4)C ++的测试应该允许STL。