没有字符串需要与另一个字符串映射.
Ex : Bacardi_old - > Facundo
Smirnoff_old -> Pyotr
Seagram_old -> Joseph
This keep on ..... may be around 1000
Run Code Online (Sandbox Code Playgroud)
有一些字符串需要用重复的字符串映射.
Ex : Bacardi_new -> Facundo
Smirnoff_new -> Facundo
Seagram_new -> Facundo
Run Code Online (Sandbox Code Playgroud)
要求:如下案例
案例1:品牌名称输入时.所有者名称作为输出.
input : Bacard_old
output: Facundo
Run Code Online (Sandbox Code Playgroud)
案例2:当所有者名称输入品牌名称作为输出时.
input : Facundo
output : Bacardi_old, Bacardi_new ,Smirnoff_new ,Seagram_new
Run Code Online (Sandbox Code Playgroud)
我的方法:
我有一张地图如下:
std::map<std::string,std::vector<std::string>> Mymap;
Run Code Online (Sandbox Code Playgroud)
2.我应该创建两个映射一个唯一映射,另一个映射复制
std::map<std::string,std::string>Mymap
std::map<std::string,std::vector<std::string>>Mymap
Run Code Online (Sandbox Code Playgroud)
就所有方面而言,第二种选择是否优于第一种选择.请建议最好的方法.
注意:我坚持使用c ++ 11.没有升级库.
最好的方法取决于您的需求。您对访问速度或插入速度感兴趣吗?或者您有兴趣减少使用的内存空间吗?
您建议的第一个解决方案(键=品牌和值=所有者的地图)使用较少的内存,但需要完整扫描才能按所有者执行搜索。
第二种解决方案:
按所有者搜索和按品牌搜索速度更快。但是,它需要更多内存,并且您还需要为每个新对执行 2 次插入。
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |