#include<iostream>
#include<algorithm>
#include<stack>
#include<sstream>
#include<string>
using namespace std;
//------十进制转化为二进制-----
int itob(int decima) {
stack<int> v; int res = 0;
while (decima != 0) {
v.push(decima % 2);//放入栈顶
decima /= 2;//依次除二
}
while (!v.empty()) {
res = res * 10 + v.top();
v.pop();//移除栈顶
}return res;
}
int main() {
stack<int> s;//构造
s.push(1);
s.push(2);
s.push(3);//入栈一个元素
cout << s.top() << endl;//取栈顶元素
s.pop();//出栈一个元素
cout << s.top() << endl;
s.push(5);
cout << s.size() << endl;//查看元素个数
cout << itob(20) << endl;//输出20的二进制
//需要输入,影响后面的输出,先注释掉
/*//拓展sstream
string str;
stack<string> t;
getline(cin, str);//iostream中的getline
stringstream ss;
ss << str;//流入
while (ss >> str) {//流出
t.push(str);//依次放入栈顶
}
cout << t.top();
t.pop();
while (!t.empty()) {
cout << ' ' << t.top();
t.pop();
}cout << endl;*/
//字符串转整型变量
string a = "1234";
int i;
stringstream st;//使用stringstream转换类型
st << a;
st >> i;
cout << i << endl;
//int j = stoi(s);
//cout << i << endl;
//整型变量转字符串
//方法1同上用stringstream
//方法2:
int b = 2345;
cout << to_string(b) << endl;//使用to_string进行转换
return 0;
}