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

  • 相关阅读:
    JS事件类型详解
    migrate的使用
    phpMyAdmin安装教程
    Unable to verify your data submission错误解决
    安装yii2高级应用模板
    关于模型中的几个概念或知识点
    视图被渲染的几种方式
    统计学与大数据分析
    物联网、云计算、大数据、人工智能概念如何区分
    物联网、云计算、大数据、人工智能概念如何区分
  • 原文地址:https://www.cnblogs.com/herd/p/10989250.html
Copyright © 2011-2022 走看看