C+中容器类和模板之间的关系是什么+; < C++中容器类和模板之间的关系是什么,任何一个可以给我确切的答案,请举例说明: < P>模板通常用于实现容器类。标准库中的所有容器类——如vector——都是模板。模板化容器类的特定实例化专用于包含其他特定类的实例。

C+中容器类和模板之间的关系是什么+; < C++中容器类和模板之间的关系是什么,任何一个可以给我确切的答案,请举例说明: < P>模板通常用于实现容器类。标准库中的所有容器类——如vector——都是模板。模板化容器类的特定实例化专用于包含其他特定类的实例。,c++,class,templates,C++,Class,Templates,一些容器类是模板(特别是std中的那些),而一些模板是容器。例如,您可以在谷歌上搜索std容器 > C++中的模板是任何类型都可以被参数化的任何东西。不仅类可以是模板,函数也可以是模板。例如,STL中的min函数是一个模板函数,但它不是一个容器类: template <class T> const T& min ( const T& a, const T& b ); 模板常数T&min(常数T&a、常数T&b); 另一方面,容器类通常描述未模板化的容器。我

一些容器类是模板(特别是
std
中的那些),而一些模板是容器。例如,您可以在谷歌上搜索
std
容器

> C++中的模板是任何类型都可以被参数化的任何东西。不仅类可以是模板,函数也可以是模板。例如,STL中的min函数是一个模板函数,但它不是一个容器类:

template <class T> const T& min ( const T& a, const T& b );
模板常数T&min(常数T&a、常数T&b);

另一方面,容器类通常描述未模板化的容器。我不认为C++标准库包含其中任何一个。

首先必须了解C++有三个不同的命名实体的层次:值、类型和模板。一个值有一个类型,特定类型的对象可以接受许多值。(我同义地使用术语“对象”、“变量”和“命名值”)还有模板——模板不是类型,而是在实例化时生成类型。模板本质上是代码生成工具(这就是为什么模板本身不能在C++中“编译”)

考虑到这一点,可以准确地说库中包含一些精选容器模板,当您在某个类型上实例化其中一个模板时,您将得到一个容器(类),该容器(类)描述了保存您的类型元素的数据结构

基本上,您没有为整数编写一个链表,一个链表用于浮点,另一个链表用于无符号字符,而是意识到所有这些数据结构在形式上都是相同的,因此您创建了一个单一的列表模板,然后可以对整数、浮点和无符号字符(可能还有更多!)进行实例化,最后总是得到相应的混凝土容器类


我想原始名称“标准模板库”暗示了这样一个事实,即它是类模板的集合,其中许多是容器模板。

另一方面,
std
中的容器是模板。还有课程。参见
向量
列表
堆栈
设置
等等。对我来说,这听起来像是一个家庭作业问题。要求“准确答案”也很奇怪。好像大多数时候,我们只是给出了一些恰当的答案,这些答案经常会在我们脑海中闪现。汽车和汽车的区别是什么?