91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

新竹市| 台中县| 凤山县| 固阳县| 福建省| 巢湖市| 绥滨县| 洱源县| 永和县| 黑水县| 娱乐| 永吉县| 蕉岭县| 万山特区| 库伦旗| 定远县| 铅山县| 乐昌市| 龙州县| 湖北省| 广东省| 遂昌县| 庄河市| 关岭| 镇巴县| 靖西县| 开封县| 淅川县| 武义县| 涿州市| 惠水县| 偃师市| 出国| 醴陵市| 阿拉善盟| 威宁| 平阳县| 潮安县| 崇文区| 大田县| 宜川县|