我最近开始学习C ++中的堆栈。在查看示例时,我注意到他们使用了以下内容:
void showstack(stack <int> s).
我想知道<>
做了什么,与仅使用int
有何不同?
答案 0 :(得分:4)
您正在查看的是template parameters。
stack
基本上是一个模板,声明方式如下:
template <class T>
class stack { /*...*/ };
因此,stack
不是一个类,您不能谈论堆栈类型。一旦指定了模板参数,它将成为一种类型。例如:stack<int>
在这种情况下是整数的 。
答案 1 :(得分:1)
stack
就像许多其他容器一样templated。您需要指定要存储在容器中的元素的类型。
template<
class T, // this what you specified in your code
class Container = std::deque<T>
> class stack;
在您像以前那样使用具有类型的堆栈之前,代码中不会编译堆栈。
答案 2 :(得分:0)
它说showstack
的参数是stack
中的ints
。
答案 3 :(得分:0)
<>
用于模板,该模板告诉类期望什么样的数据。您可以将int
替换为string
,那样便会有一堆字符串。