c++中命名空间std的函数都有哪些
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中命名空间std的函数都有哪些相关的知识,希望对你有一定的参考价值。
小弟初学c++ 想知道命名空间std 中的函数有哪些 和这些函数的功能 越全越好 !!!
晕 我昨天偶然知道 swap函数 在std中 而我以前都是自己编一个( 汗!! )所以想知道std中的函数 没想到这么多!!!!!!!!
有没有几个 初学者常用的函数 希望大虾指点一二!!!!!!!!!!!!!!!!!!!!!!!!
你还真贪啊,在命名空间里面包括标准c++中所有的函数,我最近在学校的图书馆借了一本<<标准C++库大全>>,有568页呢(当然了其中有示范代码).同意楼上的,换个学习方式,就算给你了,很多你也用不到的,难道你要背下来吗,不用的话,时间一长,也就忘了!你还是看C++实例来的更快些!
不好意思啊,我也是初学C++,看了下那本书,能看懂的不多.就像你说的,像你那样经常写同一段代码,当发现有一个库函数能够完成相应的功能的时候,才会记得更牢靠. 参考技术A c++不是这么学的,建议自己多写程序,遇到不会的问题,上网寻找答案。这样会进步的比较快,你这样像背书似的学习方式,个人感觉不太利于程序的记忆。因为很多的函数,你没有实际的应用,根本就体会不到函数的用处。所以建议楼主还是换一个学习方式,事半功倍 参考技术B 同意一楼的观点,不要死钻牛角尖,顶尖高手也不一定能够记得全,做项目的时候还是要查书的!ok
这是浪费时间。
良药苦口! 参考技术C 兄弟,有问题先用MSDN查查好不,什么函数及用法都在里面,真是的
哪些 C 构造出现在 std 命名空间中?
【中文标题】哪些 C 构造出现在 std 命名空间中?【英文标题】:Which C constructs appear in the std namespace? 【发布时间】:2018-07-14 03:16:01 【问题描述】:在 C++ 中包含 C 标准库头 <foo.h>
的推荐方法是包含相应的 C++ 头 <cfoo>
。
根据我的经验,这会将 一些 相应的 C 构造放入 std
命名空间中,但其他一些在全局范围内,有时它们会出现在两个地方(即 @987654325 @命名空间和全局范围)。
这取决于编译器(有些人喜欢只在 std
中包含 size_t
而不是在全局范围内,其他人总是在全局范围内包含它)和构造(例如既不是 assert
也不是 @尽管包括 cassert
和 cerrno
,但 987654329@ 似乎曾出现在 std
命名空间中。
标准的要求是什么,是否有任何简单的规则可移植地访问与std
命名空间内外的位置相关的 C 构造(比 using namespace std
更好)?
This question 涵盖相同的领域,但那里的答案已经反映了我的理解,即 cfoo
将所有内容都放在 std
中 - 但没有回答为什么像 assert
和 errno
这样的东西不要这样的问题t 出现在std
在那种情况下,以及如何知道类似“例外”的完整列表。
【问题讨论】:
@GManNickG - 这个问题有点窄(它询问东西是否也出现在全局命名空间中 - 但我的问题是“我怎样才能便携地使用任何 C 构造”)。这个问题的答案似乎是“不”——但这留下了如何使用任何给定结构的问题。例如,“否”并不意味着所有内容都出现在std
中,因为 assert
肯定不会出现(可能还有其他任何作为宏实现的内容)。另外,那里的答案很烂?被接受的似乎没有回答问题(也许引用被截断了)。
如有疑问,请始终添加std::
@L.Kue - 它不起作用,考虑assert
。
@BeeOnRope assert
是一个宏,而不是一个函数,因此没有使用std::
。
@BeeOnRope,另一个问答的要点是,包括<c___>
将保证std::
中的名称。至于宏,你必须知道什么是宏,什么不是。其中许多都是大写的。
【参考方案1】:
Assert 和 errno 是预处理器宏,它们是宏意味着它们不能识别名称空间和范围。 (预处理器在编译之前运行,不尊重任何作用域/命名空间)
<cfoo>
标头中除宏之外的所有内容都应放在 std 命名空间中。
【讨论】:
所以这两个宏是唯一的例外——没有出现在::std
中的东西?
不,所有的宏都不会出现在::std
中——宏通常没有命名空间的概念。您实际上不能将宏放在名称空间中。我将相应地编辑我的答案。感谢您指出这一点。
我了解宏没有命名空间的概念,由预处理器实现。那不是问题。问题是 std
命名空间中没有出现哪些 C 构造?如果答案是“所有这些都实现为宏”,那么问题是这是否由标准定义以及我可以在哪里查看什么是宏。
Cppreference 是一个很好的资源,你可以看看 以上是关于c++中命名空间std的函数都有哪些的主要内容,如果未能解决你的问题,请参考以下文章
C++ 从 std::async 函数读取命名空间中的全局变量标志