1、std::stack使用方式:
#include// stack 构造 : 1. stack s; 2. stack s;
2、相关 *** 作:
std::stack 支持赋值运算符 =
元素访问:
s.top() 返回栈顶
容量:
s.empty() 返回是否为空
s.size() 返回元素数量
修改:
s.push() 插入传入的参数到栈顶
s.pop() d出栈顶
其他运算符:
==、!=、<、<=、>、>= 可以按照字典序比较两个 stack 的值
3、代码示例:
#include#include using namespace std; int main() { stack s;//创建一个整型栈 for (int i = 1; i <= 10; i++) { s.push(i);//将1~10的数字放入栈中 } cout <<"The stack number of elements is :"<< s.size() << endl; for (int j = 1; j <= 10; j++) { cout << s.top() << ' '; s.pop(); //将1~10的数字从栈中弹出 } cout << endl <<"The stack number of elements is :"<< s.size() << endl; return 0; }
4、运行结果:
5、示例2:
题目1(自创仅练习使用):应用STL中的stack模板编写函数实现十进制数转换成其他进制数:
输入样例1:
输入一个十进制数:2
输入要转换的进制:8
这是它的8进制转换:2
输入样例2:输入一个十进制数:15
输入要转换的进制:7
这是它的7进制转换:21
实现程序代码:
#include#include using namespace std; void HexadecimalConversion(int Original,int Final)//十进制转换任意进制函数 { stack stack; int quotient;//商数 int remainder;//余数 bool isContinue = true; while (isContinue) { if (Original >= Final) { quotient = Original / Final; remainder = Original % Final; stack.push(remainder); Original = quotient; if (quotient < Final) { stack.push(quotient); isContinue = false; } } else { cout << Original; isContinue = false; } } while (!stack.empty()) { cout< > Original; cout << "输入要转换的进制:"; cin >> Final; cout << "这是它的" << Final << "进制转换:"; HexadecimalConversion(Original,Final); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)