我有一个 multiset mymult
i 我根据类成员排序m_a
。
然后我想检查所有排序的元素,如果m_a
相邻字段的差异mymulti
小于我给定的阈值,比如 0.001。如果是这样,那么我想更喜欢另一个类成员 m_b 较小的那个。
在这里我被卡住了,我没有使用多重集或迭代器的经验。我不知道如何比较两次迭代的迭代器。如果您能为我提供正确的代码,我将不胜感激!我的尝试,不是太多,只是我的概念:
//all before I got stuck
for(it = mymulti.begin(); it!= mymulti.end(); ++it) //or it++?
if( (it+1)->mymulti.m_a - (it)->mymulti.m_a < 0.001)
if ((it+1)->mymulti.m_b < (it)->mymulti.m_b)
//swap them. but how to swap two fields in a multiset, not two multisets?
// otherwise do nothing