gpt4 book ai didi

c++ - 解析文件中的数据并存储在对象中

转载 作者:行者123 更新时间:2023-11-28 01:56:34 24 4
gpt4 key购买 nike

好吧,我参加了一个编码挑战的工作面试,我完全搞砸了..

我希望有人可以帮助我解决这个问题,这样我至少可以了解我遗漏了什么,以便下次出现此类问题时我可以做得更好。

我被要求为以下数据创建一个解析器:

Data = {
Name = "Macrosoft",
Launched = 2006,
Scores = {
Players = {
Josh = 46,
June = 98
},
Rewards = ( 50, 40, 20 ),
Min = 1,
Max = 100
},
Games = (
"Evo",
"Gun Star",
"Nuka"
)
}

所需函数:

  • data.GetStr("姓名");//返回宏软件
  • data.GetNum("启动");//返回 2006
  • data.GetData("Scores").GetData("Players").GetNum("June");//返回 98
  • data.GetArray("游戏").GetStr(1);//返回 Evo
  • data.FindNum("六月");//返回 98

详细信息:

所有元素都有一个标识符,如数据、名称、启动等。

所有元素都有一些数据,这些数据位于标识符和字符“=”之后,数据可以是:

  • 字符串
  • Int(已启动,最小值和最大值)
  • array(在'('和')'之间定义的数组)
  • 其他数据(数据、分数、球员)

最佳答案

您可以定义一个数据结构来保存您的数据。根据您发布的数据结构,我认为您可以这样定义一个类:

class Data {
public:
Data(string str);

string GetStr(string key);
int GetNum(string key);
Data GetData(string key);
Data GetArray(string key);

// Array data operations
string GetStr(int index);
int GetNum(int index);

private:
map<string, Data> dataMap;
};

通常你应该先拆分你的数据文件,你可以用字符','拆分你的数据字符串,然后你会得到一些赋值语句,如:Name = "str", Launched = 123456Scores = { ... }Games = ( ... )

然后Name = "str"Launched = 123456 可以直接放入dataMapScores = { ... }Games = ( ... ) 应该放入一个新的 Data 变量中,然后使 SocresGames 是新的 Data 变量的键,并将它们放入 dataMap

所以我们要解决的下一个问题是如何用Scores = { ... } Games = ( ... ) 初始化一个Data 对象

可以看到 Scores = { ... } 正是您要解决的问题,因此您只需调用 Data constructor 即可。

然后 Games = ( ... ) 应该再次用 ',' 分隔。也可以将( ... )中的元素放入dataMap中,key为元素在( ... )中的索引p>

现在一切都清楚了。你的构造函数可能是这样的:

Data(string str) {
vector<string> vecStr = split(str, ',');
for(auto vecIter = vecStr.begin(); vecIter != vecStr.end(); ++vecIter) {
if (ifIsArrayAssignment(*vecIter)) {
// Games = ( ... )
// you should put every elements into a new Data's dataMap
// the key to the value can be numbers: 1 2 3 ...
} else if (ifIsDataAssignment(*vecIter)) {
// Scores = { ... }
// you should get the key from *vecIter first
// and make a new Data object with { ... } part
} else {
// Lanched = 123456 or Name = "str"
// put it into dataMap
}
}
}

关于c++ - 解析文件中的数据并存储在对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40989612/

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