这个 c++ 结构是如何工作的,我如何使用它
How does this c++ structure work and how can i use it?
我必须为项目使用下一个接口,但我不知道如何初始化类 PriorityQueue 的对象,甚至不知道如何使用关系类型......有人可以向我解释一下吗?谢谢!
typedef int TElem;
typedef int TPriority;
typedef std::pair<TElem, TPriority> Element;
typedef bool(*Relation)(TPriority , TPriority);
class PriorityQueue {
PriorityQueue(Relation r);
}
我想首先用using
转换typedef
。这将使事情更加清晰:
using TElem = int;
using TPriority = int;
using Element = std::pair<TElem, TPriority>;
using Relation = bool(*)(TPriority , TPriority);
class PriorityQueue
{
public:
PriorityQueue(Relation r);
};
bool some_relation(TPriority, TPriority);
auto test()
{
auto pq = PriorityQueue(some_relation);
}
如您所见Relation
只不过是指向一个函数的指针的类型别名,该指针采用两个int
参数并返回bool
。
最有可能的是,Relation
函数用于确定两个priorities
中哪一个更高。但是,它需要记录在案。例如,如果第一个参数具有更高的优先级或第二个参数具有更高的优先级,它应该返回true
?如果两个参数具有相同的优先级怎么办?这些事情只能从文档中知道。
相关文章:
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 使用移动和复制语义时函数匹配如何工作?
- remove(str.begin(), str.end(), );无法正常工作(我正在使用视觉工作室 2012)
- 我想使用此代码单击某个特定窗口,但它无法正常工作
- C++代码停止工作错误使用cout内部函数
- 系统( "pause" ) 即使使用正确的标头也无法正常工作
- Visual Studio 2019:使用 vcvars64 从命令行构建C++.bat不再工作
- 使用 stl 库创建图形是如何工作的?
- 不使用与左右停止工作命名空间 std 的简单比较
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- ZeroMQ 在使用 std::thread 创建工作线程时崩溃
- 为什么使用 exec() 重新启动程序不能正常工作?
- 使用程序生成来创建磁盘,但纹理无法正常工作
- 使用 std::atomic 标志和 std::condition_variable 在工作线程上等待
- 试图弄清楚我需要做哪些更改才能使代码正常工作.使用Visual Studio
- 在新作用域中使用unique_lock是否等效于在使用共享资源的工作结束时解锁调用
- curl发送JSON数据不使用C 工作
- C Visual Studio代码不使用工作区中的单个文件夹编译
- 在Qt中使用工作线程将数据写入文件的正确方法是什么?
- 如何使用工作线程正确退出Qt应用程序