【问题标题】:Grouping data in a File C++在文件 C++ 中对数据进行分组
【发布时间】:2013-12-14 21:05:28
【问题描述】:

我有以下文本文件结构:

<Game Draw> <Ticket ID> <Ticket Numbers>*6
<Game Draw> <Ticket ID> <Ticket Numbers>*6

例子:

123 ABACD T1245 5 8 10 13 25 63
123 ABACD T1245 6 7 9 12 61 63
252 FYHGO T9736 8 9 10 11 12 13
252 GTGOH T5436 10 11 12 13 14 15

每一行都是一张彩票。 - 一张票可以有多条线 - 一张平局可以有多张票。

我想对特定抽奖的所有结果进行过滤。显然,并非所有玩家都参加每场抽签 - 抽签可以有多张门票(带有多条门票线)。因此,是否可以将所有票分成多个图层(地图 - 地图内?),以便我可以轻松处理此信息。还是我最好只逐行处理所有这些并将其放入某种描述的结构中。

非常感谢,

【问题讨论】:

  • 如果您使用数据库而不是文件可能会有所帮助。但是,在文件的情况下,如果我理解正确的话;是的,你可以这样做 std::map> > val ofc。可以是您自己的类型(例如 Line)。无论如何,您应该更清楚一点(访问示例)。

标签: c++ file-io grouping


【解决方案1】:

我认为您可能还需要使用正则表达式和用户定义的结构进行处理。 这段代码只是一个小代码sn-p。

//Originally, each data is from txt file.
//but, this is just sample.
struct Ticket_Info
{
    int     first_number;
    string  game_draw;
    string  ticket_id;
    int     ticket_numbers[MAX_TICKET_NUMBER];

} tickets[] = 
{
    {123, "ABACD", "T1245", {5, 8, 10, 13, 25, 63}}
,   {123, "ABACD", "T1245", {6, 7, 9, 12, 61, 63}}
,   {252, "FYHGO", "T9736", {8, 9, 10, 11, 12, 13}}
,   {252, "GTGOH", "T5436", {10, 11, 12, 13, 14, 15}}
};

std::regex match_draw_key("FYHGO");

for_each(std::begin(tickets), std::end(tickets), [&](const Ticket_Info &ticket)
{
    std::cout << ticket.ticket_id << ": " << std::regex_match(ticket.game_draw, match_draw_key) << '\n';
});

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多