作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试做这样的事情,
enum Data_Property
{
NAME,
DATETIME,
TYPE,
};
struct Item_properties
{
char* Name;
char* DateTime;
int Type;
};
int main() {
std::string data = "/Name Item_Name /DATETIME [TimeStamp] /TYPE [Integer value]";
std::list <std::string> known_properties;
known_properties.push_back("/Name");
known_properties.push_back("/DATETIME");
known_properties.push_back("/TYPE");
Item_properties item_p = extract_properties(data); //I use a function to get properties
//in a structure.
//here I want to use a switch-case statement to get the property by enum value
}
我想知道有什么方法可以让它变得简单吗?或者我如何将 (/NAME/DATETIME/TYPE) 等属性键与枚举结合起来并避免使用 std::list 即 known_properties?
最佳答案
据我所知,C++ 枚举中没有任何东西类似于 C# 枚举属性。我可能是错的。
鉴于此,我建议使用 map 将数据属性映射到项目属性。您只需要构建此 map 一次。您还可以将字符串表示与项目和数据属性相关联。这应该可以更容易地构建项目属性对象。我认为列表不是这项任务的理想数据结构。
关于c++ - 将枚举与字符串变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186122/
我是一名优秀的程序员,十分优秀!