迭代访问struct的字段

时间:2016-03-13 08:04:18

标签: c++ vector struct

我们说我的结构定义如下:

struct Record
{
  string a;
  string b;
  string c;
};

我还有vector<Record>包含一些数据。我正在编写一个以Recordvector<Record>为输入的函数,我必须返回vector中与Record匹配的所有条目。

但是,在将作为参数传递给函数的Record中,某些条目将初始化为""。这意味着与vector中的条目进行比较时,不应考虑这些条目。

我目前编写的功能如下:

vector<Record> SearchQuery (vector<Record> data, Record tosearch)
{
    if (tosearch.a != "")
    {
        for (int i = 0; i < data.size(); i++)
        {
            if (data[i].entryno != tosearch.a)
            {
                data.erase(data.begin() + i);
                i--;
            }
        }
    }
    . 
    . // I can duplicate the above part for entry b and c as well
}

但是,编写代码似乎不是一种好方法,因为会有很多冗余。此外,如果Record有很多成员变量,那么代码将是巨大的。我的问题是,是否有更好的方法来满足我上面提到的要求?

我已经考虑过通过宏访问成员变量,但似乎没有成功。通过结构中第i个变量的索引访问成员变量似乎也存在问题。感谢。

0 个答案:

没有答案
相关问题