1 Star 1 Fork 0

hangq / coder

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
problem_register.h 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
hangq 提交于 2023-09-11 20:33 . rename question to problem
/*
* Created by hangangqiang on 2020.04.17.
*/
#ifndef LEETCODE_QUESTION_REGISTER_H
#define LEETCODE_QUESTION_REGISTER_H
#include <map>
#include <string>
#include <memory>
#include "problem.h"
#include "common/error_code.h"
typedef std::unique_ptr<Problem> (*ProblemCreator)();
class ProblemRegister {
public:
~ProblemRegister() = default;
static ProblemRegister *GetInstance();
ProblemCreator GetCreator(ProblemType type, const std::string &question_id);
void RegCreator(ProblemType type, const std::string &question_id, ProblemCreator creator);
private:
ProblemRegister() = default;
private:
std::map<std::pair<ProblemType, std::string>, ProblemCreator> creators;
};
class ProblemRegHolder {
public:
ProblemRegHolder(ProblemType type, const std::string &question_id, ProblemCreator creator);
~ProblemRegHolder() = default;
};
#define RegProblem(type, id, creator) static QuestionRegHolder g_##type##id##QuesRegHolder(type, #id, creator)
#define RegLeetCodeProblem(id, creator) static ProblemRegHolder g_##LeetCode##id##QuesRegHolder(kLeetCode, #id, creator)
#define RegCodeForcesProblem(id, creator) \
static ProblemRegHolder g_##CodeForces##id##QuesRegHolder(kCodeForces, #id, creator)
#define RegHuaweiProblem(id, creator) static ProblemRegHolder g_##Huawei##id##QuesRegHolder(kHuawei, #id, creator)
#define RegOthersProblem(id, creator) static ProblemRegHolder g_##Others##id##QuesRegHolder(kOthers, #id, creator)
#endif // LEETCODE_QUESTION_REGISTER_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/hangangqiang/coder.git
git@gitee.com:hangangqiang/coder.git
hangangqiang
coder
coder
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891