gpt4 book ai didi

c++ - 多个字符串比较

转载 作者:行者123 更新时间:2023-11-30 02:32:58 27 4
gpt4 key购买 nike

我正在尝试用 C++ 实现一个非常基本的 redis 克隆。所以当我收到查询时,我需要解析它们。现在我正在这样做:

void Query::buildQuery(){
std::string query_type = lower(args[0]);
if(query_type == "get"){ //do something }
else if(query_type == "set"){ //do something }
else if(query_type == "getbit"){ //do something }
else if(query_type == "setbit"){ //do something }
else if(query_type == "zadd"){ //do something }
else if(query_type == "zcard"){ //do something }
else if(query_type == "zcount"){ //do something }
else if(query_type == "zrange"){ //do something }
else if(query_type == "save"){ //do something }
else { throw(QueryException("Invalid query type")); }
}

还有其他更短的方法吗?除了 STL,我不想包含任何其他库。

最佳答案

如果那些 do_something 可以提取到单独的方法中,那么您可以创建一个从字符串到指向成员函数的指针的预初始化 HashMap (unordered_map) 并执行像

(this->*queryHandlers[query_type])();

不过,您必须在大量函数和一个大型函数之间做出选择。

关于c++ - 多个字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com