队列扩容
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 2015\install\vc\include\xutility 2372
属性-> c/c++ -> 预处理器 -> 预处理器定义 里添加
_SCL_SECURE_NO_WARNINGS