使用迭代器打印多图

时间:2015-10-14 14:46:18

标签: c++ iterator multimap

说我有一些

    typedef std::pair<userObject*,char> Bar;
    std::multimap<int, Bar > Foo;
    std::multimap<int, Bar >::iterator it = foo.begin();

我已经在地图中插入了一些成员,并希望使用迭代器迭代其内容。但是,尝试第二行代码会产生no viable conversion from....

我知道错误是由Bar成对引起的。我用ints编写了一个简单的类来模拟行为,一切都按预期工作。我需要提供一些模板类T吗?定义行为。

这是查看代码的源代码的a link

错误讯息是

    no viable conversion from '__map_iterator<__tree_iterator<__value_type<int *, [...]>, std::__1::__tree_node<std::__1::__value_type<int *, std::__1::pair<Vertex *, char> >, void *> *, [...]>>' to '__map_iterator<__tree_iterator<__value_type<int, [...]>, std::__1::__tree_node<std::__1::__value_type<int, std::__1::pair<Vertex *, char> >, void *> *, [...]>>'

1 个答案:

答案 0 :(得分:1)

这不是因为它是一对。这是因为你没有调用函数foo.begin,而是试图让它直接访问它。

正确的代码是Images = new FS.Collection("images", { stores: [ new FS.Store.FileSystem("thumbs", { path: "~/public/thumbs", transformWrite: createThumb }), new FS.Store.FileSystem("images", { path: "~/public/images" }) ], filter: { allow: { contentTypes: ['image/*'] //allow only images in this FS.Collection } } });