如何使迭代器在迭代时表现得像一个类型

How to make iterator behave like a type through it iterates?

本文关键字:类型 一个 迭代器 何使 迭代      更新时间:2023-10-16

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

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

打印工作正常,但我希望能够访问std::string函数,即find所以当我能写出needle[index].find("sampleString");时我想让迭代器的行为类似于这个。那么如何制造出像*i.find("sampleString");这样的东西呢?

差不多了,但是操作符优先级意味着*i.find()不起作用。它尝试解引用i.find(),而不是解引用i,然后在结果上调用find。选择你觉得最好看的:

(*i).find("sampleString");
i->find("sampleString");
相关文章: