C++学习笔记--STL标准模板库的认识与使用--序列式容器--stack(栈)

C++学习笔记--STL标准模板库的认识与使用--序列式容器--stack(栈),第1张

C++学习笔记--STL标准模板库的认识与使用--序列式容器--stack(栈)

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;
}


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5433853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存