所以我试图实现一个insert函数,它在列表中按正确的顺序插入一个元素。
我的输入为:
b.insert('Z');
b.insert('J');
b.insert('Y');
并输出为:
J Y Z
我首先在列表的开头创建迭代器点,然后迭代遍历每个对象,直到找到输入它的正确位置。我不明白为什么,但是当我开始迭代时,它进入循环后会向前跳一个点。
class list < node<T>* >::iterator itr = bt->level().begin();
cout << "itr now: " << (*itr)->getItem() << endl;
while (itr != bt->level().end()) {
cout << "itr now: " << (*itr)->getItem() << " and " << elem << endl;
// do a bunch of other stuff
++itr;
}
我的输出应该如下:
itr now: Z
itr now: Z and J
itr now: J
itr now: J and Y
但是它出现了
itr now: Z
itr now: Z and J
itr now: J
itr now: Z and Y
可以告诉我发生了什么导致了这个问题吗?
答案 0 :(得分:0)
请在此处发布您的完整代码,如果您正在寻找已排序的订单,那么只需在container
中插入该元素,然后使用标准的algorithm sort
即可。