UB

STL相关

1
2
3
4
5
struct vec_cmp{
bool operator()(vector<int>& a, vector<int>& b) {
return a[0] <= b[0]; // 使用 <= 违反了严格弱序要求,应该使用`<`.
}
};

在C++ STL中,比较函数必须满足严格弱序,即对于相等的元素,comp(a, a) 必须返回 false。使用 <= 会导致相等时返回 true,这违反了要求。