此篇仅作为用来学习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;
}