我想迭代一个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");
?
答案 0 :(得分:13)
你几乎就在那里,但运算符优先级意味着*i.find()
不起作用。它会尝试取消引用i.find()
,而不是取消引用i
,然后在结果上调用find
。使用这些中最适合您的一个:
(*i).find("sampleString");
i->find("sampleString");