vector<vector<string>> 设置的问题

Issues with a vector<vector<string>> setup

我创建了一个应用程序来解析 Windows/Linux 上大约 30 万种产品(每种产品都有自己的 70 个类别)的分隔文本数据库。该应用程序的目的是比较两个提供的文本文件(一个 ftp 和 local/current 一个)并用任何更改更新本地文件(更新单个产品字段、添加或删除产品) ) 并记录这些更改。

问题是:有没有比二维向量更有效的方法?也许地图或成对的向量会更有效?基本上,比较将逐行、逐个产品、逐个类别进行。如果在两个列表中都找到匹配的条目,则检查该记录以确认它在两个列表中是相同的(否则更新),如果没有找到匹配的条目,则从本地列表中删除或添加丢失的产品(如果在本地列表,但出现在 ftp 列表中)。

所有这些上下搜索和潜在的 removal/addition 新成员(顺序无关紧要,因此添加被推回本地二维向量的末尾)似乎导致应用程序性能受苦所以我想知道是否有更有效的方法来解决这个问题。

注意:顺序不重要,不允许重复输入,本地矢量将使用相同的分隔格式写回到文本文件中。后端 php 应用程序需要这种类型的 text/delimited 格式。

感谢您的宝贵时间和任何建议。

调查std::unordered_map。对你来说应该会快很多。