2012-07-16 32 views
1

我想从一个SEACH函数持有一组迭代器。 是否有“更好的方式”来保存一组迭代器(阵列与套)。在记忆效率方面,每种方式的优缺点是什么?使用一组VS usings在C数组++

谢谢。

+5

这是一个很好的[参考表](http://www.linuxsoftware.co.nz/containerchoice.png)容器。 – chris 2012-07-16 14:46:44

+0

@chris:没有流向std :: array。有没有这个参考的更新版本? – coelhudo 2012-07-16 14:49:53

+0

@ coelhudo,AFAIK,no。关于这个,有一个关于SO的问题,所有无序的版本都会把它搞乱。 – chris 2012-07-16 14:54:44

回答

3

它没有意义谈论哪个更好阵列或不理解你正在试图完成设置。

有你应该考虑考虑:该容器预计将被更新什么样的迭代器指向,并且是容器?

举例来说,如果你存储迭代器的矢量(不要紧,你把这些迭代器),并更新矢量,以前店里迭代器可能无效。要非常小心地存储迭代器。

这听起来像你正在缓存对速度的结果。如果您需要缓存结果,最好使用其中一个无序容器。使用与缓存相同的密钥作为搜索结果。不要存储迭代器,只是查询键和实际结果。该unordered_set有O(1)查找时间和他们哈希键,他们不占用很多空间,存储结果。