c++ - C ++中奇怪的命名空间概念
问题描述
我遇到了这个:
template<class T> using PQ = priority_queue<T>;
我无法理解发生了什么,所以我尝试访问源代码并自己复制它:
template<class T> class I_Love_You {
public:
static void print() {
cout << "Hello StackOverflow!" << endl;
}
};
template<class F> using We_are_just_friends = I_Love_You<F>;
void solve() {
We_are_just_friends<int>::print();
}
这里发生了什么?priority_queue 是在 c++ 文件中定义的模板类定义,然后在创建 .exe 时在 c++ 中链接。但是,这是什么使用和模板,以及我如何分配模板以及通过使用创建或定义命名空间的具体情况?请有人帮我分解一下。
解决方案
template<class T> using PQ = priority_queue<T>;
priority_queue
是一个模板类型,所以我们总是要为它指定一个类型。
如果我们为它创建一个别名,PQ
,priority_queue
仍然需要知道它的类型。因此,我们声明PQ
了一个模板,并将传递给的值传递PQ
给priority_queue
。
推荐阅读
- excel - 在共享日历中创建 Outlook 约会
- javascript - 如何调用haveibeenpwned api php json v3
- google-play - 如何在 Android 中实现 Play Install Referrer API?
- flutter - 如何在 VS Code 中隐藏错误信息的部分?
- python - 我应该只使用 `==` 来比较 `(None, None)` 元组吗?
- javascript - new Date() 更改时间问题_JavaScript
- javascript - 如何使用道具测试反应组件?
- json - 逻辑应用动态内容给出 null 或“”
- c++ - 查找模板相等运算符
- r - ggplot2:如何将我的自定义主题保存为(高分辨率)PDF