gpt4 book ai didi

c++ - 在结构的 vector 中查找

转载 作者:行者123 更新时间:2023-11-28 00:18:11 24 4
gpt4 key购买 nike

我在有结构的地方做了下面的程序

struct data
{
int integers; //input of integers
int times; //number of times of appearance
}

并且有一个这个结构的 vector

std::vector<data> inputs;

然后我将从文件中获取一个整数 current_int

std::fstream openFile("input.txt")
int current_int; //current_int is what I want to check if it's in my vector of struct (particularly in inputs.integers)
openFile >> current_int;

我想检查 current_int 是否已经存储在我的 vector 输入中。我已经尝试研究如何在 vector 中查找数据,并且假设您使用这样的迭代器:

it = std::find(inputs.begin(),inputs.end(),current_int)

但是如果它在一个结构中,它会起作用吗?请帮忙。

最佳答案

two variants of find :

  • find() 搜索普通值。在您的情况下,您有一个 data vector ,因此传递给 find() 的值应该是 data
  • find_if() 采用谓词,并返回谓词返回 true 的第一个位置。

使用后者,您可以轻松匹配结构的一个字段:

auto it = std::find_if(inputs.begin(), inputs.end(), 
[current_int] (const data& d) {
return d.integers == current_int;
});

请注意,上面使用了 C++11 lambda 函数。在早期版本的 C++ 中执行此操作需要您创建一个仿函数。

关于c++ - 在结构的 vector 中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28925349/

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