【发布时间】:2020-09-13 04:05:42
【问题描述】:
我想在程序中使用 std::queue。但稍后我可能会更改为队列的其他实现。我的所有 typedef 都有一个标题,但 typedef 不适用于 std::queue。 有没有办法让 std::queue 的 typedef 有类似的东西?
编辑: 我不想要这样的特定类型的 typedef:
typedef std::queue<int> IntQueue;
我试过了
template <class T>
typedef std::queue<T> Queue;
【问题讨论】:
-
std::queue 的 typedef 是什么意思,你能举个例子
-
您应该包含无效的内容,以便我们告诉您为什么无效。
typedef适用于所有类型,包括std::queue实例。 -
欢迎来到 Stack Overflow。请阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。最后请edit您的问题向我们展示您尝试过的minimal reproducible example,并告诉我们它给您带来了什么问题。
-
你尝试过使用 typedef 吗?真的只是
typedef std::queue queue...? -
最后只是猜测您的问题:您尝试使用 模板
std::queue。问题是它不是一个类型,它是一个类型的 template。std::queue<int>是一种类型。如果要为模板本身创建别名,则必须使用template,但必须使用using而不是typedef(如template<typename T> using queue_alias = std::queue<T>;)