-5

我需要比较以下结构中包含的不同类型的数据:

struct Person{
    string surname;
    char BType;
    string organ;
    int age;
    int year, ID;
} Patient[50], Donor[50];

这些结构正在使用以下文件进行初始化:

Patients 3
Androf B kidney 24 2012
Blaren O kidney 35 2010
Cosmer A heart 35 2007

...其中字段分别为姓氏、BType、器官、年龄、年份。

如果我想比较BTypeofPatient[1]BTypeof Donor[1],我会怎么做呢?

4

1 回答 1

0

如果我理解正确,您有一个包含多个不同类型成员的结构,并且您正在寻找一种方法来比较该结构的实例。

它可能如下所示:

struct X {
    std::string s;
    char c;
    int i;
    bool operator==(const X& ref) {
        return s == ref.s && c == ref.c && i == ref.i;
    }
    bool operator!=(const X& ref) {
        return !this->operator==(ref);
    }
};

可能的用法:

X x1, x2;
x1.s = x2.s = "string";
x1.c = x2.c = 'c';
x1.i = x2.i = 1;
if (x1 == x2)
    std::cout << "yes";
x1.s = "string2";
if (x1 != x2)
    std::cout << " no";

输出yes no,因为起初所有成员都是平等的,但后来的字符串不同。


但是,如果您只需要比较特定成员,请直接访问和比较它们(无需重载operator==):

if (Patient[1].BType == Donor[1].BType) {
    ...
}
于 2013-10-09T17:06:27.217 回答