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

Mar*_*cek 1 c++ iterator vector

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

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

        }
Run Code Online (Sandbox Code Playgroud)

打印工作正常,但我希望能够访问std::string函数,即find 所以当我能够编写时,needle[index].find("sampleString");我希望能够使迭代器的行为与此类似.那么如何做出类似的东西*i.find("sampleString");呢?

Mik*_*our 13

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

(*i).find("sampleString");
i->find("sampleString");
Run Code Online (Sandbox Code Playgroud)