n******h 发帖数: 97 | 1 C++ STL里面提供list这个container.
有一个问题是,如果我有一个iterator a指向一个list里面的一个元素,我想让另一个
iterator b指向a的next。貌似唯一的方法是
b = a;
b++;
STL里面不提供直接取一个list的iterator的next的函数么?
必须由两句话完成? |
n******h 发帖数: 97 | 2 这个只能把当前的iterator本身advance吧。
我想让iterator b指向iterator a的next;
如果用你的函数,还是需要两句话
b = a;
advance(b,1);
没有一句话能够搞定的么? |
E*V 发帖数: 17544 | |
A*******e 发帖数: 108 | 4 这个语法不对。
【在 E*V 的大作中提到】 : b++=a?
|
p*u 发帖数: 2454 | 5 你的a还要么,如果不要直接用b = ++a;就行了吧。
【在 n******h 的大作中提到】 : 这个只能把当前的iterator本身advance吧。 : 我想让iterator b指向iterator a的next; : 如果用你的函数,还是需要两句话 : b = a; : advance(b,1); : 没有一句话能够搞定的么?
|
S**I 发帖数: 15689 | 6 应该是要的,不然直接++a就得了,何必再定义一个b。
【在 p*u 的大作中提到】 : 你的a还要么,如果不要直接用b = ++a;就行了吧。
|
p*u 发帖数: 2454 | 7 其实OP这个问题真的很无谓。
【在 S**I 的大作中提到】 : 应该是要的,不然直接++a就得了,何必再定义一个b。
|
n******h 发帖数: 97 | 8 a是要保留的。要不然我就直接++a了。
解释一下这个问题的初衷,
我也是才学c++。对于OOP的理念不是很熟悉。
其实本来也就是两句话的事情。
我只是很奇怪,b = a.next;对于链表来说
是很基本的操作。但是貌似stl没有函数支持。
让我觉得很迷惑而已。
所以怀疑是我知道得不多,stl本身是有这样的
函数的。这才上来问了一下。赫赫
【在 p*u 的大作中提到】 : 其实OP这个问题真的很无谓。
|
t****t 发帖数: 6806 | 9 你愿意的话可以写
++(b=a)
【在 n******h 的大作中提到】 : a是要保留的。要不然我就直接++a了。 : 解释一下这个问题的初衷, : 我也是才学c++。对于OOP的理念不是很熟悉。 : 其实本来也就是两句话的事情。 : 我只是很奇怪,b = a.next;对于链表来说 : 是很基本的操作。但是貌似stl没有函数支持。 : 让我觉得很迷惑而已。 : 所以怀疑是我知道得不多,stl本身是有这样的 : 函数的。这才上来问了一下。赫赫
|
g*********s 发帖数: 1782 | 10 楼主其实是想要next()这个接口,而不是“写成一行”这个结果。
【在 t****t 的大作中提到】 : 你愿意的话可以写 : ++(b=a)
|