C++ STL之stack栈容器

此篇仅作为用来学习C++的stack容器的学习笔记, 欢迎大家交流!
一、STL:

1)标准模版库,提供了通用的模版库和函数。如:向量、链表、队列、栈。

2)核心组建包括:容器(Containers)、算法(Algorithms)、迭代器(Iterators)。
二、Stack栈容器:

1)容器适配器,遵循先进后出(FILO)数据结构。

2)头文件:#include

3)常用函数:

empty:判断堆栈元素是否为空,true表示栈元素为空;
pop:移除栈顶元素;
push:栈顶添加元素;
top:返回栈顶元素;
size:返回栈中元素数目;


下面我们用一个例题来实践一下:

三、题目描述:

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”

四、代码解析:

#include<iostream>
#include<stack>
using namespace std;
int main(){
    string ss;//声明一个字符串
    stack<string> sstack;//创建一个stack容器
    while(cin>>ss)//读入每个单词,遇到空格之前存入栈中,然后循环结束再次读入
    {
        sstack.push(ss);//压入栈中
    }
    while(sstack.size()>1)//自带的size函数
    {
        cout<<sstack.top()<<" ";//输出栈顶元素并加上空格
        sstack.pop();//移除栈顶元素
    }
    cout<<sstack.top()<<endl;//结尾没有空格 所以需要单独输出并加上空格
    return 0;
}

转载自博主:陌生的童话城堡,若有侵犯,立刻删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值