【问题标题】:Arrays in stacks in c++C ++中堆栈中的数组
【发布时间】:2020-03-20 15:32:42
【问题描述】:

我想在 C++ 中堆叠或排队数组/向量。

我尝试了多种变体,包括使用向量,但均未成功。我认为这将是一个非常“标准”的问题,但无法找到资源。 这是排队向量的一种建议实现,但编译不喜欢它。

#include <queue> 
queue<int[2]> q; 
q.push({9,3});
q.push({5,2});

【问题讨论】:

  • 使用std::array&lt;int, 2&gt; 而不是int[2]
  • 谢谢!这样就解决了。
  • 队列> / stack>
  • 如果您将此代码中的queue&lt;int[2]&gt; 替换为queue&lt;vector&lt;int&gt;&gt;,应该不会有任何问题。尝试这样做时,您一定犯了另一个错误。如果元素的大小总是应为2,则queue&lt;array&lt;int, 2&gt;&gt; 可能是首选。
  • 谢谢大家!解决了。但显然不能在三分钟前结束问题。

标签: c++ arrays vector stack queue


【解决方案1】:

这个q.push({9,3}); 不起作用,因为 C 样式数组没有初始化列表构造函数。

一种解决方案是使用 std::array 而不是 C 样式的数组作为队列的类型:

#include <array>

std::queue<std::array<int, 2>> q; 
q.push({9,3});
q.push({5,2});

【讨论】:

  • 同样 c 样式的数组不可复制或分配。
猜你喜欢
  • 2010-12-15
  • 2018-06-06
  • 2019-01-18
  • 2010-11-26
  • 1970-01-01
  • 2020-06-12
  • 2012-11-18
  • 2014-05-17
  • 2014-12-14
相关资源
最近更新 更多