C++中stack的pop()函数返回值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wx1458451310/article/details/88042718
    int temp = s.pop();
    cout<<temp<<endl; 

运行代码会提示错误:error C2440: “初始化”: 无法从“void”转换为“int”

【全部demo】

#include <iostream>
#include <stack>

using namespace std;

int main()
{
	stack<int> s;
	if(s.empty())
		cout<<"empty"<<endl;   //empty
	s.push(1);
	s.push(6);
	s.push(66);
	cout<<s.size()<<endl;   //3
	int temp = s.pop();
	cout<<temp<<endl;	//66
	cout<<s.size()<<endl;	//2
	cout<<s.top()<<endl;	//6
	cout<<s.size()<<endl;	//2
	system("pause");
	return 0;

}

【分析】:

C++中stack,其中有两个方法:

pop(), 返回void,

top(),返回栈顶的引用。

所以想要提取栈顶元素,直接用s.top()

猜你喜欢

转载自blog.csdn.net/wx1458451310/article/details/88042718