gpt4 book ai didi

c++ - 循环直到没有遇到 std::vector 的任何元素

转载 作者:行者123 更新时间:2023-11-28 04:19:06 25 4
gpt4 key购买 nike

我正在尝试为 C++ 代码制作一个基本的解析器,从输入代码中提取有关类的信息。为此,我有一个从迭代器位置开始查找数据成员的方法,直到它遇到某些字符串,如“public”、“protected”、“};”。字符串在 vector 中传递,因为我也必须将该函数用于其他断点,因此字符串的数量无法固定。当我不知道在什么下标停止时,如何在循环条件内获取 vector 的元素?它看起来像这样:

while(a != vect[0] && a != vect[1] .... && a != vect[END VALUE]) {
//loop body
}

END VALUE 可以是任何东西。

这可能吗?希望我能很好地解释我的查询。我在代码中使用迭代器。仅使用下标来解释我的查询。

谢谢!

最佳答案

在评论中,您担心“我必须在循环条件内迭代 vector ”,但是任何实现都必须遍历每个元素以验证它可以继续。

你的循环条件可以表示为“如果我们在a中找到vect就停止”,我们可以看到有一个很好的 std::find 。已经在<algorithm> . std::find返回指向它找到元素的位置的迭代器,或 end如果没有找到。

while(std::find(vect.begin(), vect.end(), a) == vect.end()) {
//loop body
}

关于c++ - 循环直到没有遇到 std::vector 的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55869500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com