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

  • 相关阅读:
    转:spring 的控制反转
    jsp 页面间传递参数
    Struts-config.xml配置文件《action-mappings》元素的详解
    转:装饰模式
    转:策略模式
    MyBatis的动态SQL详解
    MyBatis配置
    spring与mybatis三种整合方法
    sqlserver 脚本 多条记录遍历
    SQL Server 游标使用
  • 原文地址:https://www.cnblogs.com/herd/p/10989250.html
Copyright © 2011-2022 走看看