相关疑难解决方法(0)

一个跟踪插入顺序的std :: map?

我目前有一个std::map<std::string,int>存储整数值到唯一字符串标识符,我确实查找字符串.它主要是我想要的,除了它不跟踪插入顺序.因此,当我迭代地图以打印出值时,它们将根据字符串进行排序; 但是我希望它们按照(第一次)插入的顺序排序.

我想过使用一个vector<pair<string,int>>替代,但我需要查找字符串并将整数值增加大约10,000,000次,所以我不知道是否std::vector会明显变慢.

有没有办法使用std::map或是否有std更适合我需要的容器?

[我在GCC 3.4上,我的价值可能不超过50对std::map].

谢谢.

c++ dictionary std insertion-order

98
推荐指数
5
解决办法
7万
查看次数

如何在Perl中实现Tie :: IxHash?

我最近遇到了一个Perl的情况,使用保持顺序的哈希会使我的代码更易读,更容易使用.经过一番搜索,我发现了Tie :: IxHash CPAN模块,它完全符合我的要求.在我谨慎起见并开始使用它之前,我想更好地了解它是如何工作的以及我可以从中获得什么样的性能.

据我所知,有序关联数组通常被实现为尝试,我以前从未实际使用过,但确实知道它们的性能符合我的期望(我希望做大量的阅读和写作,并且需要永远记住最初插入的订单键).我的问题是我无法弄清楚这是否是Tie :: IxHash的制作方式,或者我应该从中获得什么样的性能,或者是否有一些更好/更清洁的选择(我真的不想保留一个)单独的数组和哈希来完成我需要的东西,因为这会产生丑陋的代码和空间效率低下).我也只是因为好奇心而好奇.如果它没有被实现为trie,它是如何实现的?我知道我可以涉及源代码,但我希望其他人已经这样做了,我猜我并不是唯一一个对这个答案感兴趣的人.

所以...想法?建议?建议吗?

perl

4
推荐指数
1
解决办法
1410
查看次数

标签 统计

c++ ×1

dictionary ×1

insertion-order ×1

perl ×1

std ×1