[英]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.