C++库包含与C语言库相同的定义,但是C++库似乎在非C库头文件中复制/扩展了一些C库功能。例如,C库有,而C++库有和; C库有,而C+库有和。
如果我需要一个字符串类,我认为最好使用而不是,因为可以从C++中所有非C功能(例如异常)中受益。但是,在C库中存在某些功能,在C++库中不存在任何其他形式。例如,我找不到除之外的任何内容,如memcpy和memcmp。
C库的哪些部分在非C库头文件中没有类似物?
(如果C++标准版本对此有影响,则我对C++11感兴趣。)
如果我需要一个字符串类,我认为最好使用而不是,因为可以从C++中所有非C功能(例如异常)中受益。但是,在C库中存在某些功能,在C++库中不存在任何其他形式。例如,我找不到除之外的任何内容,如memcpy和memcmp。
C库的哪些部分在非C库头文件中没有类似物?
(如果C++标准版本对此有影响,则我对C++11感兴趣。)
<string>
没有像<cstring>
中的memcpy和memcmp那样的函数,原因是<string>
并不是<cstring>
的重新实现,而是一种完全不同的处理“文本操作”这个抽象问题空间的方法。其中之一区别于<cstring>
的方法是使用了不同的语言,另一个是考虑到编程语言无关的原因(例如,零终止符与长度)。 - user395760memcpy
替换为std::copy
,将memcmp
替换为std::equal
。 - jalf