繁体   English   中英

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

[英]Which one to use c++ stl container or the MFC container?

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

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

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

MFC容器几乎永远不会在Linux上可用。

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

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

从来源:

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

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

Ronald Laeremans代理产品部经理Vsual C ++团队“

如果您在MFC土地的范围内工作,MFC集合类确实有一些优势。 例如,您可以获得序列化(如果您的容器元素继承自CObject或类似内容)以及一些针对“free”的调试支持。 MSDN详细介绍了如何在不同的MFC集合类型之间进行选择[这里]( http://msdn.microsoft.com/en-us/library/y1z022s1 ( VS.80).aspx)

但作为默认值,我会倾向于STL类。

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

STL的。 认真。

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

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

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

您可以通过解决方案梦寐以求的方式,以可插拔的方式完成所有这些操作。 STL一路..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM