Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学习C++;标准图书馆-好主意? 我是C++初学者,我还在学习基础,但是我有一个简单的关于C++中标准库和STL的问题,我认为这不是从语言的核心,我的意思是这个库只会使编程和移植变得更容易,也就是说如果我学习和掌握C++规则,我可以自己构建,我的意思是,一般来说,这种通话体验是通过练习来实现的。 示例:cout是标准的输出函数,但是如果我想为Windows编程GUI软件,我永远不会只看它!! 我的问题是:这是真的吗?如果不是,为什么?_C++ - Fatal编程技术网

学习C++;标准图书馆-好主意? 我是C++初学者,我还在学习基础,但是我有一个简单的关于C++中标准库和STL的问题,我认为这不是从语言的核心,我的意思是这个库只会使编程和移植变得更容易,也就是说如果我学习和掌握C++规则,我可以自己构建,我的意思是,一般来说,这种通话体验是通过练习来实现的。 示例:cout是标准的输出函数,但是如果我想为Windows编程GUI软件,我永远不会只看它!! 我的问题是:这是真的吗?如果不是,为什么?

学习C++;标准图书馆-好主意? 我是C++初学者,我还在学习基础,但是我有一个简单的关于C++中标准库和STL的问题,我认为这不是从语言的核心,我的意思是这个库只会使编程和移植变得更容易,也就是说如果我学习和掌握C++规则,我可以自己构建,我的意思是,一般来说,这种通话体验是通过练习来实现的。 示例:cout是标准的输出函数,但是如果我想为Windows编程GUI软件,我永远不会只看它!! 我的问题是:这是真的吗?如果不是,为什么?,c++,C++,你不能说是一个C++程序员,而不需要对标准库有很好的了解。写你自己的是一个非常糟糕的主意。我强烈建议你得到一份它的副本,并接受它将给你的力量。例如,您将了解到,流不仅适用于在控制台应用程序中执行I/O 也许你也应该看看,它讨论了编写你自己的标准库的利弊。 < p>你是正确的,C++标准库不是“核心语言”的一部分,标准库提供的大部分可以只用特征核语言来独立实现。 但是,学习标准库对您有很大的好处。为什么要浪费时间重写已经存在的函数呢?如果您选择重写它们,那么您的版本可能会有问题。这只是软件开发的真

你不能说是一个C++程序员,而不需要对标准库有很好的了解。写你自己的是一个非常糟糕的主意。我强烈建议你得到一份它的副本,并接受它将给你的力量。例如,您将了解到,流不仅适用于在控制台应用程序中执行I/O


也许你也应该看看,它讨论了编写你自己的标准库的利弊。

< p>你是正确的,C++标准库不是“核心语言”的一部分,标准库提供的大部分可以只用特征核语言来独立实现。
但是,学习标准库对您有很大的好处。为什么要浪费时间重写已经存在的函数呢?如果您选择重写它们,那么您的版本可能会有问题。这只是软件开发的真理之一,不管你有多优秀,但如果你是一个语言初学者,那就更重要了。相比之下,现有的实现已经在现场进行了尝试和测试。

寻找std::cout在GUI编程中没有用处的示例并不完全正确。即使您不使用cout,也值得了解std::basic_ostream的简单字符串格式化功能

您不会使用STL中的所有内容,但MAN是那些字符串和容器类,有时还有算法,非常有用

我不经常使用流(在我工作的地方,人们对C stdio发誓;这不是我的职责),但容器是巨大的,巨大的时间节省器。虽然制作自己的链表模板并非不可能,
std::vector
std::map
都能节省大量时间,因为您不必疯狂地管理内存,而红黑树也不是一块微不足道的代码。Josuttis的书和Strostrup的C++编程语言是我们确保每个C++程序员都有自己的架子。在大多数情况下,标准库中的容器将比应用程序截止日期内编写的任何东西都要快得多,也更健壮。一个小小的挑剔-std::strings从来没有被认为是STL的一部分。@Neil:真的吗?我的意思是,我相信你和你交谈的其他人不认为这是一部分,但是STD::Basic字符串是在SGI的STL中,它与其他模板容器一起记录,等等。当然,我认为STD::String是STL的一部分,在任何程度上都存在STL这样的东西。与向量类似,它是一种特殊化,但与向量不同,它是有用的;-)@史蒂夫:我从书柜里拿出马特·奥斯特恩的《通用编程与STL》(大概是STL知识的一个很好的来源,就像你将要从斯捷潘诺夫先生那里得到的一样),我看了一下索引,我发现没有提到字符串。嗯。这是对标题中“和”的非常具体的解释。如果“string”是STL的一部分,但不是泛型编程的一部分,因为它是一个(typedef for a)类,而不是一个模板,该怎么办?那么在索引中会提到它吗?是基本的字符串吗?索引中是否提到了
vector
,如果没有,则
vector
因此不属于STL的一部分?
std::iota
是否在索引中,如果不是,则
std::iota
是否不是STL的一部分?(顺便说一下,它是STL的一部分,而不是C++标准的一部分)等等。我认为字符串是一个特例,但我不认为你的Q是完全D;-)再一次,嗯,我已经解释了为什么我认为你的推理规则,“如果X在一本关于Y的书中没有索引项,那么X不是Y的一部分”,是不可靠的。但除非我真的想挑三拣四,说STL是SGI创造的东西,如果而且只有SGI说它是它的一部分,那么我不能阻止你发明自己的STL定义。我不会挑三拣四,因为SGIs产品不符合大多数人所说的STL,即使它是这个术语唯一的正式定义。