【问题标题】:Is there a better method than using Map STL C++?有没有比使用 Map STL C++ 更好的方法?
【发布时间】:2017-03-12 04:21:41
【问题描述】:

我正在创建一个遗传算法,该算法对一组数据进行分类,我需要为其生成 1s、0s 和 2s 的随机序列来定义规则 2 表示它处于 1 和 0 两种状态。我正在尝试使用 Map STL 来映射生成的随机规则集和每个规则的输出。我需要 Map 键是动态的/更改每次迭代/生成以由新的规则填充。

我意识到我可以选择使用指针,这会使我的代码复杂化并且会出现可读性问题。

我知道的另一个选项是复制关键元素和值并将其删除,以便它可以被新规则替换。

所以,我的问题是:

1)。使用向量和我自己的映射算法会更好吗?唯一的问题是我想要高效和快速,因为我将处理 2000 或更多的数据。

2)。是否有任何其他 STL 可以使用我不需要下载的库?

3)。我是否应该只使用 Map 并每次都重置地图中的元素,以便再次初始化它们?

哪种方法有效?

欢迎任何其他建议或建议。

【问题讨论】:

  • 好的,我需要阅读这里提问的基准是什么。我知道这可能是一个广泛的问题。请指导我而不是投反对票。
  • 这有关系吗?有经验的开发人员首先编写简单、清晰的代码,然后看看性能是否有问题。是的,即使您神奇地知道性能将成为一个问题,您也可以这样做 - 您想要一个已知良好的版本,这样您就可以将它与您的快速但复杂的版本进行比较。
  • 没关系,但我想知道我已经浏览了尽可能多的选项。我只是基于我的程序的性能将成为一个问题,因为我知道很多人都在使用 map stl 并使其尽可能高效并减少要处理的错误。
  • 也感谢您的建议。

标签: c++ c++11 stl classification genetic-algorithm


【解决方案1】:

如果您不希望数据按排序顺序排列,您可以考虑使用 std::unordered_map。 查看this 了解一些基准。

【讨论】:

  • 嗯...我的地图不是静态的。阅读链接上的 cmets 似乎使用无序地图可能没有好处。我希望我的程序尽可能快速和简单,但如果我确实需要交易一个,它可能会很快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 2012-09-17
  • 1970-01-01
  • 2010-09-24
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多