我创建了一个应用程序,用于在 Windows/Linux 上解析约 30 万种产品(每种产品都有自己的 70 个类别)的分隔文本数据库。该应用程序的目的是比较两个提供的文本文件(一个来自 ftp 和一个本地/当前文件)并使用任何更改更新本地文件(无论是更新单个产品字段,添加或删除产品)以及保留这些更改的日志。
问题是:有没有比二维 vector 更有效的方法?也许 map 或成对的 vector 会更有效?基本上,比较将逐行、逐个产品、逐个类别进行。如果在两个列表中都找到匹配的条目,则检查该记录以确认它在两个列表中是相同的(否则更新),如果没有找到匹配的条目,则从本地列表中删除或添加丢失的产品(如果在本地列表,但出现在 ftp 列表中)。
所有这些上下搜索以及新成员的潜在删除/添加(顺序无关紧要,因此添加被推回本地 2d vector 的末尾)似乎导致应用程序性能受到影响,所以我想知道是否有更有效的方法来解决这个问题。
注意:顺序不重要,不允许重复输入,局部 vector 将使用相同的分隔格式写回到文本文件中。后端 php 应用程序需要这种类型的文本/分隔格式。
感谢您的宝贵时间和任何建议。
最佳答案
查看std::unordered_map .对您来说应该快得多。
关于c++ - vector<vector<string>> 设置的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988558/