哪一个使用c ++ stl容器或MFC容器?

时间:2009-05-09 17:32:43

标签: c++ visual-c++ mfc stl containers

对于每个stl容器,都有一个可视化c ++中可用的MFC容器。哪个更好,哪个更好,你用的是什么?

我总是使用STL容器是错误的吗?

8 个答案:

答案 0 :(得分:10)

由于便携性,我总是更喜欢STL容器。

Linux上几乎永远不会提供MFC容器。

即使你不打算在Linux上使用你的代码......你也永远不知道未来会带来什么。

答案 1 :(得分:10)

人们已经指出代码的可移植性是使用STL的一个原因,但有一个更好的理由,更符合您的自身利益:技能和经验的可移植性。在我看来,当你在简历中寻找下一份有STL经验的工作时,会给你更多机会。为什么? STL实际上是标准C ++的一部分,如果我正在招聘,我会认为知道STL的人可以很快地拿起MFC容器,但如果我正在寻找具有STL技能的人,我不一定会做出相反的假设。 / p>

答案 2 :(得分:5)

From the source:

“坦率地说,团队会给你相同的答案.MFC集合类只是为了向后兼容.C ++有一个集合类标准,那就是标准C ++库。使用任何一个都没有技术上的缺点。 MFC应用程序中的标准库。

我们不打算在这方面做出重大改变。

罗纳德拉雷曼斯 代理产品单位经理 Vsual C ++团队 “

答案 3 :(得分:4)

MFC集合类确实有一些优点如果你在MFC土地的范围内工作。例如。你得到序列化(如果你的容器元素继承自CObject或类似的东西)和一些调试支持“免费”。 MSDN详细介绍了如何在不同的MFC集合类型[此处](http://msdn.microsoft.com/en-us/library/y1z022s1(VS.80).aspx)

之间进行选择

作为默认值,我会倾向于STL课程。

答案 4 :(得分:3)

拥有便携性和自由主义的自由。去STL& Boost(www.boost.org)。

答案 5 :(得分:2)

STL的。严重。

答案 6 :(得分:1)

我使用STL容器的原因有很多:它们经过了充分的测试,有良好的文档记录,并且被全国各地的人们所熟知。它们也在不断改进:看看Boost添加的所有新功能,它们都是向后兼容的。如果你真的想弯腰,请阅读Alexandrescu的现代C ++设计:应用的通用编程和设计模式。使用Boost和STL需要使用他的许多技术。

还需要考虑的是 S TL是“ S 标准”,但 M FC只是“ M icrosoft”。任何随机的通用C ++编码器都可能理解STL,但只有旧的Microsoft编码器才会知道MFC。此外,微软几乎放弃了MFC。

答案 7 :(得分:-1)

即使他们向您显示MFC容器更快的数字,也可以免除异常并免费提供双浓咖啡:只需闭上眼睛并使用DEL键(也称为NO-LOCK-IN键)。

你可以做到所有这些,并且更加便携,并以可插拔的方式解决方案只能实现梦想。 STL一路..