【发布时间】:2013-12-05 19:55:38
【问题描述】:
我有 2 个变量:std::list lst; 和 std::list<A*>::iterator lstiter,其中 A 是一个类。 lst 充满了指向类的指针! B 是另一个包含这两个变量的类。
将迭代器放在列表的开头:
void B::iterstart() {
lstiter = lst.begin();
}
void B::iternext() {
iteratend();
lstiter = ++lstiter;
}
void B::iterprev() {
iteratstart();
lstiter = --lstiter;
}
void B::iteratend() {
if (lst.empty())
throw -1;
if (lstiter == lst.end())
throw "Error: end of list\n";
}
void B::iteratstart() {
if (lst.empty())
throw -1;
if (lstiter == lst.begin())
throw "Error: begin of list\n";
}
(我还有一个函数可以获取列表中迭代器指向的元素的指针。当列表中没有元素并且我尝试越过最后一个或第一个元素。这就是我的问题所在!
现在我打电话给:iterstart(); iternext(); iternext(); iternext();我从来没有收到消息!(列表结束)
而且我也确实有一些其他的错误,有时我调用过程 prev,但我得到了过程的返回值 next! (但我想先尝试解决其他问题)
【问题讨论】:
-
那么,
B到底是什么?还是questions?questions是否与lstiter相关? -
哦抱歉,问题必须是列表,B 是一个包含迭代器和列表的类!