zoukankan      html  css  js  c++  java
  • 队列扩容

    template<class T>
    void Queue<T>::Push(const T& item)
    {
      /*if (rear == capacity-1)
      {
        rear = 0;
      }
      else
      {
        rear++;
      }*/

      //判断队列是否存满
      if ((rear+1)%capacity == front)
      {
        //加倍
        T* newQueue = new T[2*capacity];
        //判断是否发生回绕
        int start = (front + 1) % capacity;
        if (start<2)
        {
          std::copy(queue+start,queue+start+capacity-1,newQueue);
        }
        else
        {
          std::copy(queue+start,queue+capacity,newQueue);
          std::copy(queue,queue+rear+1,newQueue+capacity-start);
        }

        front = 2 * capacity;
        rear = capacity - 2;
        capacity *= 2;
        delete[] queue;
        queue = newQueue;
      }

      rear = (rear + 1) % capacity;
      queue[rear] = item;
    }

    ------------------------------------------------------------------------------------

    严重性 代码 说明 项目 文件 行 禁止显示状态
    错误 C4996 'std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy'
    with parameters that may be unsafe - this call relies on the caller to c
    heck that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' 34_顺序队列 e:visual studio 2015installvcincludexutility 2372

    属性-> c/c++ -> 预处理器 -> 预处理器定义 里添加 
    _SCL_SECURE_NO_WARNINGS

  • 相关阅读:
    codevs1288 埃及分数
    codevs1792 分解质因数
    dp
    JAVA大数贪心
    求最长不重叠子串
    初识后缀数组
    dp
    两数相除,判断小数位是否有限位
    构造二分图匹配
    建立多个树状数组
  • 原文地址:https://www.cnblogs.com/herd/p/10989250.html
Copyright © 2011-2022 走看看