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

  • 相关阅读:
    ubuntu16.04安装jdk1.8(java1.8)
    OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
    Eclipse 的 jsp 页面代码格式化
    php自动加载
    swift 遍历
    swift 赋值判断
    C语言开发环境配置
    C语言之分配
    C语言之指针
    IOS之swift第一课基础代码
  • 原文地址:https://www.cnblogs.com/herd/p/10989250.html
Copyright © 2011-2022 走看看