映射类型为的队列容器

queue container with map type

本文关键字:队列 类型 映射      更新时间:2023-10-16

我正在尝试使用STL编写一个21点游戏。它需要包含几个不同的容器,包括std::mapstd::queue。我正在尝试做以下事情:

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

但是,我遇到了一些错误,其中一个错误表示模板参数对于队列声明无效。如何将map容器插入queue容器?我还需要使用list容器来完成此操作。

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;

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

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

cards的类型是map<string, int>,所以你已经把这个类型放在< >里面了。

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