比较向量和结构向量以匹配值 - C++

Comparing a vector and a vector of struct for matching values - c++

我有一个包含 6 个数字的向量,另一个向量是我的结构的向量,它包含来自文件的数字数据。

我的向量是这样的(vec1 = 6 个随机数,vec2 = 文件数字数据)

vec1

1, 2, 3, 4, 5, 6

vec2

4, 5, 2, 7, 34, 76

5, 7, 3, 7, 1, 23

98, 76, 5, 9, 12, 64

我需要比较vec1和vec2,看看vec2中有多少个匹配的数,以及return从vec1中找到的每个值在vec2中的计数。

我遇到的问题是我的 vec2 是一个结构向量,而 vec1 只是一个常规向量。如何比较 vec 和结构的 vec?我试过下面的但'=='运算符不喜欢 vec 和结构之间的比较。

   //struct to store data from file
   struct past_results {
      std::string date;
      std::string winningnums;
    };
    
    //vectors to store file content, and 6 random numbers
    std::vector<past_results> resultvec;
    std::vector<std::string> random_nums

    for(int i = 0; i < resultvec.size(); i++)
    if(randomnums.at(i) == resultvec.at(i))
    {
     //output result
    }

错误信息:操作数类型为:std::string == past_results

如何明确地从我的结构向量中获取值并与我的法线向量进行比较?

为清楚起见,我删除了很多代码,因为我认为它们不相关,因为我只需要知道如何比较这两个向量。

在您的 if 语句中,您试图将 std::string 类型的 randomnums 元素与 past_result 类型的 resultvec 元素进行比较。为了比较结构的实际 winningnums 值,将 if-statement 更改为:

if(randomnums.at(i) == resultvec.at(i).winningnums)
{
    //output result
}