C ++堆栈中的数组

Ent*_*ast 1 c++ arrays queue stack vector

我想在c ++中堆栈或排列数组/向量。

我已经尝试了多种变体,包括带有向量的变体,但没有成功。我认为这将是一个相当“标准”的问题,但无法为其寻找资源。这是一种建议的排队矢量实现,但是编译不喜欢它。

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

art*_*rtm 5

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});
Run Code Online (Sandbox Code Playgroud)

  • 同样,c样式数组不可复制或不可分配。 (6认同)