• 队列扩容


    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

  • 相关阅读:
    git 撤销更改的文件
    git基于某个分支创建分支
    nodejs 支付宝app支付
    windows提交代码到git仓库
    MongoError: Cannot update '__v' and '__v' at the same time,错误解决办法
    作业3.输入一个年份,判断是闰年还是平年
    作业2.判断一元二次方向根的情况
    求3个数中的最大数
    语句
    运算符
  • 原文地址:https://www.cnblogs.com/herd/p/10989250.html
Copyright © 2020-2023  润新知