一、判斷兩個結構體是否相等
- 判斷兩個結構體是否相等:重載操作符"=="
- 不能用函數memcpy來判斷兩個結構體是否相等:memcmp函數是逐個字節進行比較的,而struct存在字節對齊,字節對齊時補的字節內容是隨機的,會產生垃圾值,所以無法比較。
#include<iostream>using namespace std;struct s
{int a;int b;bool operator == (const s &rhs);
};bool s::operator == (const s &rhs)
{return ((a == rhs.a) && (b == rhs.b));
}int main()
{struct s s1, s2;s1.a = 1;s1.b = 2;s2.a = 1;s2.b = 2;if (s1 == s2)cout << "兩個結構體相等" << endl;elsecout << "兩個結構體不相等" << endl;return 0;
}
參考資料:
-
判斷兩個結構體是否相等+是否能用memcmp函數判斷結構體相等