gpt4 book ai didi

c++ - C 标准库的(其余部分)未涵盖 C 标准库的哪些部分?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:17 24 4
gpt4 key购买 nike

The C++ library includes the same definitions as the C language library

但 C++ 库似乎在非 C 库头文件中复制(/扩展)了 C 库的某些功能。比如C库有 ,C++库有 ; C 库有 ,C+ 库有

如果我需要一个字符串类,我假设我最好使用 而不是 ,因为 可以受益于 C++ 中的所有非 C 功能(例如异常)。但是 C 库中有一些功能在 C++ 库中没有以任何其他形式存在。例如,我在 之外找不到像 memcpy 和 memcmp 这样的东西。

C 库的哪些部分在非 C 库头文件中没有类似物?

(如果 C++ 标准的版本对此很重要,我对 C++11 感兴趣。)

最佳答案

标题不多,所以我们只列出它们。有些可以被语言设施取代,而不是图书馆。 (我没有列举每个头文件中的每个函数,所以我可能错过了大多数同事都没有 C++ 替代品的奇怪函数。)

C library         C++ alternatives
assert.h Exceptions
complex.h <complex>
ctype.h None (or maybe <locale>, if you want to jump down that rabbit-hole)
errno.h None (but only applies to C functions)
fenv.h None
float.h <limits>
inttypes.h (See breakdown)
formatting <iostream>
strto... <string> (C++11), <sstream>
imaxabs std::abs overloads
imaxdiv std::div overloads
iso646.h Language
locale.h <locale>
math.h None (extended with C++ overloads)
setjmp.h Exceptions
signal.h None
stdarg.h Variadic templates (C++11)
stdbool.h Language
stddef.h None
stdint.h None
stdio.h <iostream> etc.
stdlib.h (See breakdown)
atof etc. <sstream>, <string> (C++11)
rand etc. <random> (C++11)
malloc etc. new, containers
abort etc. None
bsearch etc. <algorithm>
abs etc. None (extended with C++ overloads)
mb strings None
string.h <string>, <algorithm>
tgmath.h <cmath> (C++ overloads)
time.h <chrono> (C++11)
wchar.h <iostream> etc.
wctype.h None

总结一下:

Which parts of the C library have no analogue in the non-C-library headers?

[w]ctype.h, errno.h, fenv.h, fenv.h, math.hsignal.hstddef.hstdint.h、部分stdlib .h。在 C++11 之前,还有 stdarg.htime.h 和更多的 stdlib.h

关于c++ - C 标准库的(其余部分)未涵盖 C 标准库的哪些部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com