C++;如何比较遍历相同字符串向量的不同迭代器的字符串值
C++; how to compare the string values of different iterators traversing the same string vector
如果两个向量迭代器 iit
和 min
遍历相同的 vector<string>
,我如何比较指针所在位置的字符串值?我希望能够做到这一点:
(strcmp(*iit, *min) < 0)
使用std::basic_string::compare
成员函数:
iit->compare(*min) < 0
您可以通过问自己以下简单问题来回答这个问题:
1) 如何从迭代器访问 std::vector
的元素?
2) 我可以对字符串执行什么样的操作?
这两个问题都可以通过查找一些文档轻松回答。这将引导您找到解决方案,例如:使用 std::string
的比较运算符之一比较迭代器的目标:
*iit < *min
如果 iit
和 min
是 std::vector<std::string>
的迭代器,那么 *iit
和 *min
是 std::sting
。因为 std::string
有一个 operator <
你可以将它们组合成
if (*iit < *min)
// do stuff
如果两个向量迭代器 iit
和 min
遍历相同的 vector<string>
,我如何比较指针所在位置的字符串值?我希望能够做到这一点:
(strcmp(*iit, *min) < 0)
使用std::basic_string::compare
成员函数:
iit->compare(*min) < 0
您可以通过问自己以下简单问题来回答这个问题:
1) 如何从迭代器访问 std::vector
的元素?
2) 我可以对字符串执行什么样的操作?
这两个问题都可以通过查找一些文档轻松回答。这将引导您找到解决方案,例如:使用 std::string
的比较运算符之一比较迭代器的目标:
*iit < *min
如果 iit
和 min
是 std::vector<std::string>
的迭代器,那么 *iit
和 *min
是 std::sting
。因为 std::string
有一个 operator <
你可以将它们组合成
if (*iit < *min)
// do stuff