你可以设置相同的队列吗?

时间:2016-04-06 17:53:44

标签: c++ queue

例如,如果我有一个名为Q的int队列,其值为(从前到后)0,1,2和3,我可以创建另一个int队列和将它们设置为彼此相等以复制彼此的数据?

以下是一个例子:

  

编写一个C ++函数queue<int> copy_queue(queue<int> &Q),它返回一个包含Q中所有项目的新队列,其顺序与Q中找到的顺序相同。原始队列Q必须最终保持不变。

是否有可能只做以下事情:

queue<int> copy_queue(queue<int> &Q){    
  queue<int>Q2 = Q; 
  return Q2;
}

1 个答案:

答案 0 :(得分:3)

  

是否有可能只做以下事情:......

几乎。记住要求

  
    

原始队列Q必须保持不变。

  

在参考参数中添加const以保证:

std::queue<int> copy_queue(const std::queue<int> &Q) {    
                        // ^^^^^
    std::queue<int>Q2 = Q; 
    return Q2;
}

请注意,这个copy_queue()函数看起来很无用,因为只需使用

std::queue<int>Q2 = Q; 

已经做了你想做的事。

请见std::queue<T>::queue(const std::queue<T>& other)