Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119043
  • 博文数量: 29
  • 博客积分: 1215
  • 博客等级: 中尉
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-05 16:29
文章分类
文章存档

2010年(29)

我的朋友

分类: C/C++

2010-12-21 23:11:50

预备知识:
1.s.empth():如果栈为空,则返回true,否则返回false
2.s.size():返回栈中元素的个数
3.s.pop(): 删除栈顶元素
4.s.top():返回栈顶元素的值
5.s.push(item):在栈顶压入新元素
6.尽管栈是以deque容器为基础实现的,但是程序员不能直接访问deque所提供的操作。
  例如,不能在栈上调用push_back函数,而是必须使用栈所提供的名为push的操作。

程序清单:

#include <iostream>
#include <stack>

using namespace std;

int main(int argc,char *argv[])
{
    const stack<int>::size_type stack_size = 10;
    stack<int> istack;
    int ix = 0;
    while(istack.size() != stack_size)
    {
        istack.push(ix++);
    }
 
    int error_cnt = 0;
    while(istack.empty() == false)
    {
        int value = istack.top(); //将栈顶元素赋值给value

        if(value != --ix)
        {
            cerr << "oops! expected " << ix
                 <<" received " << value <<endl;
            ++error_cnt;
        }
        istack.pop();
    }

    cout << "There are " << error_cnt <<" errors!" << endl;
    

    return 0;
}

程序执行结果:
There are 0 errors!


阅读(1381) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~