例如我有200个类的项目(200个标题和200个编译单元), 每个我的类都有成员,其中包含一些字符串,这意味着我必须将STL中的字符串标题包含在每个标题中。
从另一方面来看,我知道在编译单元中我不需要大多数字符串类功能(它是metods等)。 这意味着我的每个编译单元都包含整个字符串类,但我需要的只是关键字“string”。编译需要更长的时间!我将编译字符串类200次!
在这种情况下,更好的是使用char关键字或制作一些自定义的字符串类,它不会像字符串类那么大吗?
感谢。
答案 0 :(得分:5)
首先,现代IDE可以使用预编译头来避免此问题。其次,仅包括<string>
的200个TU的成本可以忽略不计。第三,想象一下令人难以置信的时间,你将不得不处理双删除,内存泄漏等等,以及strlen
的算法成本为O(n)和那种一团糟。
与不使用此类技术的费用相比,<string>
等中等标头的编译时间免费。
哦,如果你真的不需要它的实际功能,你可以转发声明。
答案 1 :(得分:4)
你真的应该使用std :: string,原因很多:
<string>
所需的时间很短答案 2 :(得分:0)
200个编译单元听起来不像是一个大项目 - 我不会为此过多的汗水。
答案 3 :(得分:0)
只有你可以决定它是否值得。但是你应该知道最大的大型应用程序充分利用std::string
,所以我怀疑它是否值得牺牲它以支持编译时间。不要低估坚持std::string
的好处,并习惯于编译速度慢的C ++。从大局来看,有200个班级很小。