zoukankan      html  css  js  c++  java
  • 284. 顶端迭代器 力扣(中等) 类的继承和函数调用

    284. 顶端迭代器

    请你设计一个迭代器,除了支持 hasNext 和 next 操作外,还支持 peek 操作。

    实现 PeekingIterator 类:

    PeekingIterator(int[] nums) 使用指定整数数组 nums 初始化迭代器。
    int next() 返回数组中的下一个元素,并将指针移动到下个元素处。
    bool hasNext() 如果数组中存在下一个元素,返回 true ;否则,返回 false 。
    int peek() 返回数组中的下一个元素,但 不 移动指针。
     

    示例:

    输入:
    ["PeekingIterator", "next", "peek", "next", "next", "hasNext"]
    [[[1, 2, 3]], [], [], [], [], []]
    输出:
    [null, 1, 2, 2, 3, false]

    知识学点:

    1. 如何继承class父类,用::
    2. 如果想调用class A中的成员变量a,那么就写成A::a
    3. 表示作用域,和所属关系,比如:
    class A
    {
      public:
        int test();  // 只是声明,但是没具体写函数,在下面下
    }
    
    int A::test()//表示test是属于A的   ,写Class A中test函数的具体内容!
    {
      return 0;
    }

    题解:https://leetcode-cn.com/problems/peeking-iterator/solution/ding-duan-die-dai-qi-by-leetcode-solutio-8toa/

    代码:

    class PeekingIterator : public Iterator {  //这里peekingiteror继承了父类Iterator,该父类自带next()和hasnext()函数!!!
    private:
        bool flag;
        int nextnum;
    public: PeekingIterator(const vector<int>& nums) : Iterator(nums) { flag=Iterator::hasNext(); // 调用父类的函数,得到bool解 if(flag) nextnum=Iterator::next(); // 调用父类的函数,得到下一个值 } int peek() { return nextnum; } int next() { int res=nextnum; flag=Iterator::hasNext(); // 移动指针 if(flag) nextnum=Iterator::next(); return res; } bool hasNext() const { return flag; } };
  • 相关阅读:
    【原创】FltGetFileNameInformation蓝屏分析
    【原创】调用系统函数里面蓝屏例子
    【原创】FltSendMessage蓝屏分析
    RES协议和断网访问URL出现的错误页面
    绕过本机DNS缓存
    异步机制
    异步机制
    异步机制
    异步机制
    异步机制
  • 原文地址:https://www.cnblogs.com/stepping/p/15369589.html
Copyright © 2011-2022 走看看