如何知道是否在地图中删除了最后一个元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何知道是否在地图中删除了最后一个元素?相关的知识,希望对你有一定的参考价值。

我有两张地图(为简单起见,我们只关注键)。我想比较并告诉差异。

目标地图:1个346789

参考图:1个23456781011

使用while循环,我可以轻松找到差异。从引用中,我可以看出插入了9,删除了2、5、10、11。但是,删除参考中元素的顺序/索引对我来说很重要。

删除10和11是可以的,因为它们在最后,并且不会破坏顺序。当2和5位于中间位置时,将其删除会破坏顺序。

我如何仅标记2个和5个元素,而不标记10个和11个元素?我正在用C ++编写代码。

因为我要逐个元素地迭代(it.begin()到it.end()),所以当我到达元素10时,我不能说这是结束。因为当时我不知道元素11是否会被删除。

答案

我知道插入了9,删除了2、5、10、11

首先执行此操作。现在,从背面开始迭代删除的结果,然后从背面开始与参考地图进行比较。如果元素匹配,则删除的元素是最后一个元素,如果您要达到目的,则可以将其从结果中删除。向前移动迭代器,并继续进行比较,直到元素不同或到达范围的末端为止。

以上是关于如何知道是否在地图中删除了最后一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除列表中列表中的第一个元素?

如何从数组中删除最后一个元素?

C#中如何获取数组的最后一个元素?

R:删除向量的最后一个元素

如何在添加和删除元素时转储无序地图?

Vue 中视图更新