我有两个像这样的结构
struct Activity {
int id;
string Description;
int parameter1;
int parameter2;
int parameter3;
int parameter4;
etc...
}
Activity A1;
A1.id=0;
A1.parameter1=50;
Activity A2;
A2.id=0;
A2.parameter1=55;
我想对它们进行比较,以显示哪些成员有所不同? 在这种情况下,例如:
paameter1不同......
由于
答案 0 :(得分:3)
这样做的最佳解决方案可能是在结构中编写公共方法,将自身与通过参数传递的结构进行比较。
这将是这样的
struct Activity {
int id;
string Description;
int parameter1;
int parameter2;
int parameter3;
int parameter4;
etc...
public:
bool compare(const Activity& param)
{
//...compare structs here like:
if (id != param.id)
//write something
//etc...
//at the end you can also return bool that indicates that structs are equal or not
return true;
}
}
除非你编写更多的比较方法,否则这显然只适用于两个相同的类,但是可能很难比较两种不同的结构。
还有其他比较两个变量(包括结构)的方法。为此,可以使用 memcmp()函数,但它不会直接告诉您哪些字段不同。
根据@Tony_D的说法编辑。