【发布时间】:2014-04-28 10:25:11
【问题描述】:
我正在使用std::list 创建我的列表。链表中的每一项都包含一个char的链表。每个列表可以有不同数量的字符。
我想为每个列表使用一个迭代器一次迭代列表的 3 个元素。当我遍历它时,我想沿着中间线的整个长度移动并同时检查上下线中的字符。
例如如果以下是我的char链表链表的内容,
- abcdef
- 敏捷的棕狐
- zxy
我想遍历第二个列表(中间)并检查上面和下面的字符。例如t - a 上而 z 下,h - b 上而 x 下等。问题是当列表 3 和 1 停止时,我仍然想迭代到列表 2 的末尾而不会出现列表 1 的错误和 3 整理。
我不太确定如何解决这个问题,因为我最初为我的中间列表设置了一个 for 循环,并且手动增加了上下列表,但是当上列表或下列表的数量较少时遇到了一些问题元素比我的中间列表所做的。
例如我有这样的事情:
list<char>::const_iterator i, u, l
u = upper_row.begin();
l = lower_row.begin();
for (i = middle_row.begin(); i != middle_row.end(); i++)
{
// code to do something with upper, middle and lower lists
u++;
l++
}
【问题讨论】:
-
在外部列表结束后你想做什么?
-
@Yakk 当我超过上限或下限列表的末尾时,我想停止遍历已停止的列表,并继续遍历中间和任何未结束的列表。
-
您的短语“t - a is upper”是什么意思?我没有在上面的字符串中找到字符 t。你能详细说明你想要什么吗?
-
@VladfromMoscow 我的意思是中间字符串中的“t”在该位置具有来自上字符串的“a”和来自下字符串的“z”。
-
@AnonUser 还有什么?你打算用它做什么?
标签: c++ list linked-list iterator char