C++;如何比较遍历相同字符串向量的不同迭代器的字符串值

C++; how to compare the string values of different iterators traversing the same string vector

如果两个向量迭代器 iitmin 遍历相同的 vector<string>,我如何比较指针所在位置的字符串值?我希望能够做到这一点:

(strcmp(*iit, *min) < 0)

使用std::basic_string::compare成员函数:

iit->compare(*min) < 0

您可以通过问自己以下简单问题来回答这个问题:

1) 如何从迭代器访问 std::vector 的元素?

2) 我可以对字符串执行什么样的操作?

这两个问题都可以通过查找一些文档轻松回答。这将引导您找到解决方案,例如:使用 std::string 的比较运算符之一比较迭代器的目标:

*iit < *min

如果 iitminstd::vector<std::string> 的迭代器,那么 *iit*minstd::sting。因为 std::string 有一个 operator < 你可以将它们组合成

if (*iit < *min)
    // do stuff