我想知道两个迭代器是否共享相同的迭代器。喜欢这里:分享迭代器是否可迭代?
typedef std::list<int> IntList;
IntList l;
IntList j;
// fill the lists
IntList::iterator start = l.begin();
IntList::iterator end = j.end();
std::cout << std::distance(start, end) << std::endl;
这段代码不工作,对我来说它为什么不很清透:有没有可能跟随一个迭代器,直到它到达其他和计数的步骤。
但是对我来说,最好找出两个迭代器是否指向同一个迭代器。用例是我有列表和切片,而切片有一个开始和一个结束指向列表中的某个地方。我想知道的是如果两个切片共享相同的列表。解决方法是为切片提供一个指向列表的指针,当然,然后简单地比较这些指针。但有趣的是知道是否有另一种方式。
发现两个切片是否共享相同列表的用例是什么? – 2011-12-16 08:01:57
@JeffreyYasskin,我想合并连续的切片。我可以测试片的开始和结束是相同的,但我想实现一个更智能的算法。 – 2011-12-16 08:06:41