我正在尝试使用tr1::unordered_map,并遇到如何有效删除元素的问题。 'erase'方法提供了按键或迭代器删除的选项。我认为后者更有效,因为前者可能涉及隐式查找操作。另一方面,我在互联网上的调查发现,在调用insert()方法后,迭代器可能无效。
我对典型的现实世界情况感兴趣,在这种情况下,放入哈希表中的对象的生命周期足够长,使得在该生命周期内发生对insert()的调用。因此,我可以得出结论,在这种情况下,只能通过键进行删除吗?是否有任何其他方法可以更有效地删除对象?我完全意识到这个问题只影响经常发生删除的应用程序。我的当前项目是否会出现这种情况还有待观察,但是我宁愿在设计项目时学习这些问题,而不是当已经有大量代码存在时才解决这些问题。
我对典型的现实世界情况感兴趣,在这种情况下,放入哈希表中的对象的生命周期足够长,使得在该生命周期内发生对insert()的调用。因此,我可以得出结论,在这种情况下,只能通过键进行删除吗?是否有任何其他方法可以更有效地删除对象?我完全意识到这个问题只影响经常发生删除的应用程序。我的当前项目是否会出现这种情况还有待观察,但是我宁愿在设计项目时学习这些问题,而不是当已经有大量代码存在时才解决这些问题。