"std::stack": 使用类 模板 需要 模板 参数列表,求高手指点

代码如下:

#include "stdafx.h"
#include "iostream"
#include "stack"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int count=0;
int n;
cout<<"请输入一个数";
cin>>n;
stack fig=new stack();
int *a=new int[n];
a[0]=1;
a[1]=1;
for(int i=0;i<n;i++){
fig.push(a[n-1],fig);
}
for(int j=0;j<n;j++){
count=count+fig.top();
fig.pop(fig);}

return count;
}

这程序写的够乱的额。

一:std::stack是模板类,实现stack FILO功能

template< class T, class Container = std::deque<T> >
class stack{ ... }

使用时须指明参数,如std::stack<int>、std::stack<float>;


二:new/delete 动态内存的使用和释放

如std::stack<int>* fig = new std::stack<int>();


三:操作符号"."和"->"

通过对象访问用".",通过指针访问用“->"


写了点代码,供参考:

// 通过对象
stack<int> fig;
for( int i = 0; i < 10; i++ ){
    fig.push( i );
}
while( !fig.empty() ){
    cout<< fig.top() << endl;
    fig.pop();
}

--

// 通过指针

stack<int>* fig=new stack<int>();
for( int i = 0; i < 10; i++ ){
    fig->push( i );
}
while( !fig->empty() ){
    cout<< fig->top() << endl;
    fig->pop();
}
delete fig;

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-06

std::stack为模板类,需要参数。

stack fig=new stack();

改为

std::stack<int> fig;

另外new的数组a要delete掉

还有我觉得是不是你push和pop的用法有问题,像这样

for(int i=0;i<n;i++)
{
fig.push(a[n]);
}

for(int j=0;j<n;j++)
{
count += fig.top();
fig.pop();
}

追问

这样动态定义数组还有别的方法吗?

追答

手动动态分配,或者使用能自动扩容的标准模板类。

追问

std::stack fig;这个是定义个栈?

本回答被提问者采纳

"std::stack": 使用类 模板 需要 模板 参数列表,求高手指点
一:std::stack是模板类,实现stack FILO功能 template< class T, class Container = std::deque<T> >class stack{ ... } 使用时须指明参数,如std::stack<int>、std::stack<float>;二:new\/delete 动态内存的使用和释放 如std::stack<int>* fig = new std::stack<int>();三:操作符号...

"std::stack": 使用类 模板 需要 模板 参数列表,求高手指点
std::stack为模板类,需要参数。stack fig=new stack();改为 std::stack<int> fig;另外new的数组a要delete掉 还有我觉得是不是你push和pop的用法有问题,像这样 for(int i=0;i<n;i++){fig.push(a[n]);}和 for(int j=0;j<n;j++){count += fig.top();fig.pop();} ...

【“Stack”: 使用类 模板 需要 模板 参数列表 】这个错误怎么改啊...
int count;T entry[maxstack];};\/\/以下为Stack类定义 template< class T,int maxstack>Stack<T,maxstack>::Stack() \/\/constructor { count=0;} template<class T,int maxstack > bool Stack<T,maxstack>::empty() const { bool outcome=true;if(count>0)outcome=false;return outcome;}...

使用类 模板 需要 模板 参数列表,请指教。。。
一:std::stack是模板类,实现stack FILO功能 template< class T, class Container = std::deque<T> >class stack{ ... } 使用时须指明参数,如std::stack<int>、std::stack<float>;二:new\/delete 动态内存的使用和释放 如std::stack<int>* fig = new std::stack<int>();三:操作符号...

error C2955: 使用类 模板 需要 模板 参数列表c++模板问题。。求高手...
public:Point(T x = 0, T y = 0); \/\/ 默认构造函数,默认值为左上角坐标(0, 0)void setX(T x);T getX();void setY(T y);T getY();void print();\/\/void moveRight(T offset);\/\/void moveDown(T offset);friend T& max(Point &, Point &); \/\/ 更改 private:T x;T y;}...

...具体的一个软件使用流程是怎样的?跪求高手指点!
⑨ 其他参数采用默认值。⑩ 单击OK按钮(关闭Unsupervised Classification对话框,执行非监督分类)。5.2 定义分类模板(1)步骤:Main->Image Classification->Classification->Signature Editor,打开分类模板编辑器。在Viewer窗口下的Raster下打开Tools图标,选择多边形AOI绘制。(2)定义模板原则①必须在分类之前就知道研究区域的...

相似回答