具有地图类型的队列容器

时间:2016-05-03 04:57:19

标签: c++ dictionary stl queue

我正在尝试使用STL写一个二十一点游戏。它需要包含几个不同的容器,其中包括std::mapstd::queue。我正在尝试执行以下操作:

map<string, int> cards = {{"1H", 1}, {"2H", 2}};
queue<cards> deck;

但是,我收到错误,其中一个错误表明模板参数对队列声明无效。如何将map容器插入queue容器?我需要使用list容器来执行此操作。

2 个答案:

答案 0 :(得分:0)

map<string, int> cards = {{"1H", 1}, {"2H", 2}};
queue<map<string, int>> deck;

或使其更具可读性:

using CardMap = std::map<string, int>;
CardMap cards = {{"1H", 1}, {"2H", 2}};
std::queue<CardMap> deck;

答案 1 :(得分:0)

您应该在< >内指定对象的类型,但您直接提到了对象而不是其类型。

map<string, int> cards = {{"1H", 1}, {"2H", 2}};
queue<cards> deck; //Wrong

cards的类型为map<string, int>,因此您已将此类型放入< >

queue<map<string, int>> deck; //right