亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Expression:invalid comarator怎么辦

發布時間:2021-11-22 15:23:13 來源:億速云 閱讀:130 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關Expression:invalid comarator怎么辦的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

場景

        定義函數如下:

template <class T> struct greaterkey {//用于指定map當中的排序,遞減,map中默認遞增
 bool operator() (const T& x, const T& y) const
 {
  return x > y;
 }
};
template <class T> struct lesskey {
 bool operator() (const T& x, const T& y) const
 {
  return x < y;
 }
};

解決

vs2010后都是嚴格比較,相等的兩個元素,一定要返回false,可以看到STL的源碼:
[cpp]
template<class _Pr, class _Ty1, class _Ty2> inline
    bool _Debug_lt_pred(_Pr _Pred,
        _Ty1& _Left, _Ty2& _Right,
        _Dbfile_t _File, _Dbline_t _Line)
    {   // test if _Pred(_Left, _Right) and _Pred is strict weak ordering
    if (!_Pred(_Left, _Right))
        return (false);
    <strong>else if (_Pred(_Right, _Left))
        _DEBUG_ERROR2("invalid operator<", _File, _Line);</strong>
    return (true);
    }
如果left和right都一樣,STL就會報錯。。所以只能修改下自己的代碼,當相等的時候,就返回false了

template <class T> struct greaterkey {//用于指定map當中的排序,遞減,map中默認遞增
 bool operator() (const T& x, const T& y) const
 {

    if (x == y) return false;
      return x > y;
 }
};
template <class T> struct lesskey {
 bool operator() (const T& x, const T& y) const
 {

    if (x == y) return false;

      return x < y;
 }
};


感謝各位的閱讀!關于“Expression:invalid comarator怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊宁市| 浦北县| 隆子县| 镇康县| 大渡口区| 永新县| 西昌市| 河池市| 沈丘县| 尚志市| 玛沁县| 张掖市| 文成县| 岐山县| 大丰市| 江北区| 九江市| 新邵县| 民勤县| 喀什市| 右玉县| 庐江县| 东山县| 萝北县| 博客| 察雅县| 平南县| 旺苍县| 泰安市| 凌源市| 丹东市| 工布江达县| 珲春市| 襄汾县| 澄城县| 胶州市| 陇西县| 闸北区| 九龙坡区| 长海县| 常德市|