[英]C++: std::map sorting
我是C ++的新手,這個問題對於很多人來說似乎都很明顯。
如果我寫這樣的話
std::map<int, double> m;
例如,
class own_int_less : public binary_function<int, int, bool>
{
public:
bool operator()( const double &left, const double &right ) const
{
return (abs(left - right) > epsilon) && (left < right);
};
double epsilon;
};
謝謝。
是否保證m根據int順序排序?
是。 默認比較器為std::less<Key>
,在您的情況下為std::less<int>
,它按預期使用<
是否有必要定義一個比較器類來執行排序?
否,因為先前的答案是“是”!
排序何時真正發生?
典型的map
實現使用比較器將新元素插入正確的位置。 查找時還使用比較器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.