检查元素是否在列表中(包含)

新手上路,请多包涵

我有一个元素列表,比如整数,我想检查我的变量(另一个整数)是否是列表中的元素之一。在python中我会这样做:

 my_list = [1,2,3,4] # elements
my_var = 3 # my variable
my_var in my_list # returns boolean

如何在 C++ 中做到这一点?我想过使用 std::list ,但我找不到 find 方法。我可以在 std::set 结构中看到这种方法。

更深入地说,问题是我的程序被赋予了一些唯一的 id(一个列表,一个集合,等等),我遍历一长串输入数据(id)并检查它们是否包含在列表中(返回的布尔值每个迭代步骤)。而且我不确定我应该如何在 C++ 中做到这一点。

原文由 ducin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

您可以使用 std::find

 bool found = (std::find(my_list.begin(), my_list.end(), my_var) != my_list.end());

您需要包括 <algorithm> 。它应该适用于标准容器、向量列表等……

原文由 Matzi 发布,翻译遵循 CC BY-SA 3.0 许可协议

类似于 python 的单线解决方案是 (std::set<int> {1, 2, 3, 4}).count(my_var) > 0

最小的工作示例

int my_var = 3;
bool myVarIn = (std::set<int> {1, 2, 3, 4}).count(my_var) > 0;
std::cout << std::boolalpha << myVarIn << std::endl;

打印 truefalse 取决于 my_var 的值。

原文由 Markus Dutschke 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题