STL stack练习

C++STL之stack栈容器 - 数据结构教程 - C语言网C++STL之stack栈容器1.再谈栈回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的方式实现。2.头文件头文件#incl……icon-default.png?t=N7T8https://www.dotcpp.com/course/113

输入一个10进制正整数,输出它所对应的八进制数。

//十进制转八进制
//可以用栈来存储取模结果(先入后出)

#include<iostream>
#include<stack>
using namespace std;

void DEC2OCT(const int& DEC, stack<int>& OCT){
    int dec = DEC;
    while(dec){
        OCT.push(dec%8);
        dec = dec / 8;
    }
}

// stack属于特殊的数据结构,没有迭代器
// 只能通过不断pop->访问top,实现数据读取
void show_stack(stack<int>& mystack){
    stack<int> tmp(mystack);//拷贝构造 深拷贝
    while(!tmp.empty()){
        cout<<tmp.top();
        tmp.pop();
    }
    cout<<endl;
}

int main()
{
    int dec;
    stack<int> res;
    while(cin){
        cin>>dec;
    }
    DEC2OCT(dec, res);
    show_stack(res);
    
    return 0;
}

将十进制整数转换成二进制数

//十进制转二进制
//可以用栈来存储取模结果(先入后出)

#include<iostream>
#include<stack>
#include<vector>
using namespace std;

void DEC2BIN(const int& DEC, stack<int>& BIN){
    int dec = DEC;
    //判断dec是否为负数
    bool flag=0;
    if(dec<0){
        flag = 1;
        dec = -dec;
    }
    //判断dec是否为0
    if(!dec){
        BIN.push(dec);
    }
    
    while(dec){
        BIN.push(dec%2);
        dec = dec / 2;
    }
    
    //加负号
    if(flag){
        int val = BIN.top();
        BIN.pop();
        BIN.push(-val);
    }
}

void show_stack(stack<int>& mystack){
    while(!mystack.empty()){
        cout<<mystack.top();
        mystack.pop();
    }
    cout<<endl;
}

int main()
{
    int dec;
    vector<int> input;
    stack<int> res;
    
    while(cin>>dec){
        input.push_back(dec);
    }
    
    for(auto it=input.begin(); it!=input.end(); it++){
        dec = *it;
        DEC2BIN(dec, res);
        cout<<dec<<"-->";
        show_stack(res);
    }
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/258705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow(web190-web200)

目录 web190 web191 web192 web193 web194 web195 web196 web197 web198 web199 web200 web190 为什么要有admin呢 这也是试出来的 这个admin必须是数据库中存在的 这样才能使用布尔注入 因为这个时候登录 有两种返回结果 一种密码错误 一种就是用户名错误 admin an…

HBase 整合 Phoenix

目录 一、Phoenix 简介 1.1 Phoenix定义 1.2 为什么使用 Phoenix 二、Phoenix 快速入门 2.1 安装部署 Phoenix 2.1.1 上传并解压 tar 包 2.1.2 复制 server 包并拷贝到各个节点的 hbase/lib 2.1.3 配置环境变量 2.1.4 重启 HBase 2.1.5 连接 Phoenix 2.2 Phoenix…

FBX模型 转换成带有空间参考的 3DTiles(.b3dm) 数据(FBX glTF 3DTiles)

目录 0 引言1 数据类型介绍1.1 FBX数据1.2 glTF数据1.3 3DTiles1.3.1 简介1.3.2 3DTiles格式的LOD是如何定义1.3.3 文件后缀格式 2 转换工具2.1 CesiumGS /3d-tiles-tools 工具2.1 glf-to-3d-tiles工具 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xf…

Linux下载安装Pychram社区版

一.背景 最近将开发也转到Linuxl发现vscode在Linux上面的速度个方面都比windows快太多了!!! 狠狠爱住,于是准备把pycharm也装上来,由于作者没有edu邮箱,于是拿社区版进行演示 二.具体步骤 2.1下载pycharm社区版 链接:下载PyCharm&#xff1a;JetBrains为专业开发者提供的P…

【经典LeetCode算法题目专栏分类】【第2期】组合与排列问题系列

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 组合总和1 class So…

你应该知道的C语言性能提升法之结构体优化

前两天码哥写了一篇《你应该知道的C语言Cache命中率提升法》的文章&#xff0c;讲述关于地址连续性带来的cache命中率提升&#xff0c;感兴趣的朋友可以先翻看一番。 今天的文章是关于如何优化结构体成员来提升cache命中率的。我们先来看一个例子&#xff1a; 代码一 /* a.c…

一文教你提高写代码效率,程序员别错过!

首先&#xff0c;每个程序员都是会利用工具的人&#xff0c;也有自己囊里私藏的好物。独乐乐不如众乐乐&#xff0c;今天笔者整理了 3 个辅助我们写代码的黑科技&#xff0c;仅供参考。如果你有更好的工具&#xff0c;欢迎评论区分享。 1、Google/Stackoverflow——搜索解决方…

ChimeraX使用教程-安装及基本操作

ChimeraX使用教程-安装及基本操作 1、访问https://www.cgl.ucsf.edu/chimerax/download.html进行下载&#xff0c;然后安装 安装完成后&#xff0c;显示界面 2、基本操作 1、点击file&#xff0c;导入 .PDB 文件。 &#xff08;注&#xff1a;在 alphafold在线预测蛋白》点…

编码器的数学描述

在数字信号处理和通信系统中&#xff0c;编码器扮演着非常重要的角色&#xff0c;它负责将原始信号转换成特定的编码形式&#xff0c;以便于传输、存储和处理。编码器的数学描述是理解其原理和设计实现的关键。本文将围绕编码器的数学描述展开&#xff0c;介绍编码器的基本原理…

智能物联网汽车3d虚拟漫游展示增强消费者对品牌的认同感和归属感

汽车3D虚拟展示系统是一种基于web3D开发建模和VR虚拟现实技术制作的360度立体化三维汽车全景展示。它通过计算机1:1模拟真实的汽车外观、内饰和驾驶体验&#xff0c;让消费者在购车前就能够更加深入地了解车辆的性能、特点和设计风格。 华锐视点云展平台是一个专业的三维虚拟展…

2023年中国法拍房用户画像和数据分析

法拍房主要平台 法拍房主要平台有3家&#xff0c;分别是阿里、京东和北交互联平台。目前官方认定纳入网络司法拍卖的平台共有7家&#xff0c;其中阿里资产司法拍卖平台的挂拍量最大。 阿里法拍房 阿里法拍房数据显示2017年&#xff0c;全国法拍房9000套&#xff1b;2018年&a…

C语言归并排序(合并排序)算法以及代码

合并排序是采用分治法&#xff0c;先将无序序列划分为有序子序列&#xff0c;再将有序子序列合并成一个有序序列的有效的排序算法。 原理&#xff1a;先将无序序列利用二分法划分为子序列&#xff0c;直至每个子序列只有一个元素(单元素序列必有序)&#xff0c;然后再对有序子序…

【VScode和Leecode的爱恨情仇】command ‘leetcode.signin‘ not found

文章目录 一、关于command ‘leetcode.signin‘ not found的问题二、解决方案第一&#xff0c;没有下载Nodejs&#xff1b;第二&#xff0c;有没有在VScode中配置Nodejs第三&#xff0c;力扣的默认在VScode请求地址中请求头错误首先搞定配置其次搞定登入登入方法一&#xff1a;…

netty线程调度定制

1、netty的线程调度问题 在netty的TCP调度中&#xff0c;线程的调度封装在NioEventLoopGroup中&#xff0c;线程执行则封装在NioEventLoop中。 线程调度规则封装在MultithreadEventExecutorGroup的next方法中&#xff0c;这个方法又封装了EventExecutorChooserFactory&#xf…

ArkTS @Observed、@ObjectLink状态装饰器的使用

作用 Observed、ObjectLink装饰器用于在涉及嵌套对象或者数组元素为对象的场景中进行双向数据同步。 状态的使用 1.嵌套对象 我们将父类设置为Observed状态&#xff0c;这个时候&#xff0c;子应该设置ObjectLink才能完成数据的双向绑定&#xff0c;所以我们构建一个组件&…

控制理论simulink+matlab

这里写目录标题 根轨迹二级目录三级目录 根轨迹 z [-1]; %开环传递函数的零点 p [0 -2 -3 -4]; %开环传递函数的系统极点 k 1; %开环传递函数的系数&#xff0c;反映在比例上 g zpk(z,p,k); %生成开环传递函数%生成的传递函数如下 % (s1) % -------------…

Vue3-23-组件-依赖注入的使用详解

什么是依赖注入 个人的理解 &#xff1a; 依赖注入&#xff0c;是在 一颗 组件树中&#xff0c;由 【前代组件】 给 【后代组件】 提供 属性值的 一种方式 &#xff1b;这种方式 突破了 【父子组件】之间通过 props 的方式传值的限制&#xff0c;只要是 【前代组件】提供的 依…

「Qt Widget中文示例指南」如何创建一个计算器?(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 本文将展示如何使用…

【开源GIS】如何高效地学习GIS开源项目?一上来就读源码你就输了!

目录 &#x1f525;前言Step 1: 熟悉项目Step 2: Hello worldStep 3: 深入了解和使用Step 4: 可以看源码了&#xff01;Step 5: API 二次封装Step 6: 持续关注和学习 &#x1f525;前言 都知开源好&#xff0c;只看源码看不懂&#xff0c;是俺太菜了&#xff1f;no no no&#…

kubeadm方式重置k8s集群

以kubeadm方式部署的k8s&#xff0c;当出现问题&#xff0c;排查解决的难度会非常大&#xff0c;如果是实验环境&#xff0c;直接进行集群重置即可&#xff0c;如果是生产环境&#xff0c;如果集群已经崩掉了&#xff0c;而且短时间时间内无法定位原因的情况的下&#xff0c;建…
最新文章