为什么我们需要对字符串使用标准库,而不需要对int数据类型使用标准库? 在C++中,为什么我们需要使用 >标准库来使用 STD::String 数据类型,但是对于 int 或浮点 < p> C++是一种语言< /强>和库< /强>,我们不需要任何类似的代码。该语言起源于C语言,其中int和float是基本类型,因此这些类型是该语言的基础 < C++的范例是,在图书馆中可以实现的一切都应该在那里实现。这意味着该语言涵盖了类、模板等的语法,而std::string的实际实现是使用这些基本语言块构建的

为什么我们需要对字符串使用标准库,而不需要对int数据类型使用标准库? 在C++中,为什么我们需要使用 >标准库来使用 STD::String 数据类型,但是对于 int 或浮点 < p> C++是一种语言< /强>和库< /强>,我们不需要任何类似的代码。该语言起源于C语言,其中int和float是基本类型,因此这些类型是该语言的基础 < C++的范例是,在图书馆中可以实现的一切都应该在那里实现。这意味着该语言涵盖了类、模板等的语法,而std::string的实际实现是使用这些基本语言块构建的,c++,C++,要使用库,您需要包含适当的标题 实际上你的问题是错误的。由于历史原因,Fur sureint和float不需要任何标题。但是一些类型,如int32\u t,intptr\u t,uint8\u t等,都是在标题中定义的 顺便说一下,第一个STL标准化为1998:多年来,C++对容器、字符串管理等实用工具没有共同的标准,这就是为什么存在多个第三方库的原因:编译器的每个供应商都必须提供一个合理的库,其中包含一种基本语言。int和float是CPU API(称为指令集)的一部分。字符串不是。@stur

要使用库,您需要包含适当的标题

实际上你的问题是错误的。由于历史原因,Fur sure
int
float
不需要任何标题。但是一些类型,如
int32\u t
intptr\u t
uint8\u t
等,都是在标题中定义的


顺便说一下,第一个STL标准化为1998:多年来,C++对容器、字符串管理等实用工具没有共同的标准,这就是为什么存在多个第三方库的原因:编译器的每个供应商都必须提供一个合理的库,其中包含一种基本语言。

int和float是CPU API(称为指令集)的一部分。字符串不是。@sturcotte06这实际上与它无关,事实证明,有很多其他语言的字符串和整数是平等的。@M.M但这可能是历史的基础。您所指的语言要么被解释,要么以某种方式被管理;C++映射int,并直接“浮”到金属上(排序),而它不能简单地用字符串来表示。@ AtasoRIDsOffice很好,我在一个没有浮点硬件的芯片上使用了<代码>浮标< /C> > 8位的<代码>长< /C>CPU@M.M我确实说过“有点”!即使在需要某种包装器来实现这些东西的时候,我认为让它们成为基本的还是有意义的,因为它们是超原始的。动态分配自动调整大小的字符串是否同样有意义?也许是这样,特别是考虑到我们现在在语言/图书馆里还有多少其他东西。在1970年的C语言中,在没有脚本语言之类的东西的世界中,这样做有意义吗?不。虽然 STD::String 根本不在C中,但我仍然认为我们在某种程度上继承了这种心态。嗯……当C++是新的时候(甚至更大的是当C是新的)时,在许多平台上,浮点操作是用软件执行的,而不是硬件执行的;例如,80年代的IBM PC。据推测,这个软件也在图书馆里。因此,Ritchie至少必须选择使浮点类型成为基本类型,而不是基于库。C++继承了CHICICE。因此问题归结为为什么C中没有字符串类型,这可以追溯到为什么B也这么做。事实上,在旧的C中只有
int
和int指针