我正在尝试使用STL写一个二十一点游戏。它需要包含几个不同的容器,其中包括std::map
和std::queue
。我正在尝试执行以下操作:
map<string, int> cards = {{"1H", 1}, {"2H", 2}};
queue<cards> deck;
但是,我收到错误,其中一个错误表明模板参数对队列声明无效。如何将map
容器插入queue
容器?我需要使用list
容器来执行此操作。
答案 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