如何通过迭代使迭代器表现得像一个类型?

时间:2013-04-16 14:09:08

标签: c++ vector iterator

我想迭代一个stirngs向量,并将所有输入与值进行比较。所以我创建了这个结构:

for (vector<string>::const_iterator i = needle.begin(); i != needle.end(); ++i) {         
            cout << *i << " ";

        }

打印工作正常,但我希望能够访问std::string个功能,即find 因此,虽然我能够编写needle[index].find("sampleString");,但我希望能够使迭代器的行为与此类似。那么如何制作像*i.find("sampleString");

这样的东西

1 个答案:

答案 0 :(得分:13)

你几乎就在那里,但运算符优先级意味着*i.find()不起作用。它会尝试取消引用i.find(),而不是取消引用i,然后在结果上调用find。使用这些中最适合您的一个:

(*i).find("sampleString");
i->find("sampleString");