有没有一种方法可以创建没有容器的迭代器?

时间:2019-07-10 05:01:00

标签: c++

我有一个清单。我不会在不复制所有节点的情况下建立查找表。

不要使用int作为节点类型来简化示例:

#include<list>
#include<set>

using namespace std;

struct Comp {
    bool operator()(list<int>::iterator lhs, list<int>::iterator rhs)const {
        return (*lhs) < (*rhs);
    }
};

int main() {
    list<int> li{ 3, 2, 1, 4, 5 };
    set<list<int>::iterator, Comp> si;

    for (auto i = li.begin(); i != li.end(); ++i) {
        si.insert(i);
    }

    // so far so good.

    // The problems comes when I need to do some lookup:
    si.find() // this requires an iterator but I only have a node
}

我想我可以创建另一个列表,插入节点,并让迭代器进行查找。但是我认为这太过头了。

0 个答案:

没有答案