Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用int和<;有什么区别;int>; 我最近开始学习C++中的堆栈。在查看示例时,我注意到他们使用了以下内容: void showstack(stack <int> s). void showstack(堆栈)。_C++_Int_Stack - Fatal编程技术网

使用int和<;有什么区别;int>; 我最近开始学习C++中的堆栈。在查看示例时,我注意到他们使用了以下内容: void showstack(stack <int> s). void showstack(堆栈)。

使用int和<;有什么区别;int>; 我最近开始学习C++中的堆栈。在查看示例时,我注意到他们使用了以下内容: void showstack(stack <int> s). void showstack(堆栈)。,c++,int,stack,C++,Int,Stack,我想知道做了什么,它与仅仅使用int有什么不同?您看到的是什么 基本上,stack是一个模板,声明如下(以简化的方式): template <class T> class stack { /*...*/ }; 模板 类堆栈{/*…*/}; 因此,stack不是一个类,您不能谈论堆栈类型。只有指定了模板参数,它才会成为一个类型;例如:stack在这种情况下是一个整数堆栈。它说showstack的参数是一个ints的堆栈,就像许多其他容器一样。您需要指定要存储在容器中的元素的类型 t

我想知道
做了什么,它与仅仅使用
int
有什么不同?

您看到的是什么

基本上,
stack
是一个模板,声明如下(以简化的方式):

template <class T>
class stack { /*...*/ };
模板
类堆栈{/*…*/};

因此,
stack
不是一个类,您不能谈论堆栈类型。只有指定了模板参数,它才会成为一个类型;例如:
stack
在这种情况下是一个整数堆栈。

它说
showstack
的参数是一个
ints

堆栈,就像许多其他容器一样。您需要指定要存储在容器中的元素的类型

template<
    class T, // this what you specified in your code
    class Container = std::deque<T>
> class stack;
模板<
类T,//这是您在代码中指定的
类容器=std::deque
>类堆栈;
除非像您那样使用带有类型的堆栈,否则代码中不会编译堆栈。

模板使用
,模板告诉类所需的数据类型。您可以将
int
替换为
string
,这样就有了一堆字符串


看起来您需要,特别是关于templatesWell的章节,
stack int s
是一个语法错误。这是它们不同的一种方式。是的,我的编译器不喜欢我删除这个部分。这是有道理的,谢谢。我在网上找不到关于它的任何信息,但现在我知道它们是什么了,我会读到它。我建议从中的一本书开始。你将对C++的概念有更好的了解。C++是一种可以做任何事情的语言。另外,如果您觉得我的答案有用,请不要忘记将其标记为已接受。