stack intStack; //创建一个栈
特定的容器处理特定的问题---栈存数据,取数据的方式固定---先进后出---穿脱原则---穿在里面的最后脱
栈的内存会自动增加,不需要考虑内存
寻路算法中常用
没有提供指定位置删除、插入这样的接口
没有迭代器,这个容器可以当作适配器
void testStack()
{
//1 2 3 插入顺序
//3 2 1 出栈顺序
//push(data) 入栈,参数:入的元素
//pop() 删除,出栈
//top() 获取栈顶元素,返回元素
stack intStack;
for (int i = 0; i < 3; i++)
{
intStack.push(i); //入栈 0 1 2
}
while (!intStack.empty()) //判断当前栈是否为空
{
cout << intStack.top() << "\t"; //获取栈顶元素
intStack.pop(); //不断出栈
}
cout << endl;
}
int main()
{
testStack();
return 0;
}
/*输出*/
2 1 0
void NumTobinary(int data) //用栈实现把一个数字转为二进制,然后输出
{
stack bin;
while (data) //当data!=0时,余数入栈
{
bin.push(data % 2);
data = data / 2; //不断整除
}
if (bin.size() < 8) //补齐8位(补高位)
{
for (int i = bin.size(); i < 8; i++)
{
bin.push(0);
}
}
//不断出栈
while (!bin.empty())
{
cout << bin.top();
bin.pop();
}
cout << endl;
}
int main()
{
NumTobinary(7);
}
/* 补齐8位,根据size判断,不足8位入0 */
/*输出*/
00000111