3
私はC++の初心者ですが、この質問は多くの人にとって明らかなようです。C++:std :: map sorting
私は
std::map<int, double> m;
- ような何かを書く場合は、mはint型の順序に従ってソートされることが保証されて?
- 並べ替えを強制するためにコンパイラクラスを定義する必要がありますか?
例えば、
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;
};
- ソートが実際に発生している場合は?私はソート関数が地図に何かを挿入するたびに呼び出されるのですか?それとも、マップを繰り返し実行する前に呼び出されますか?
ありがとうございます。
'binary_function'を定義しましたが、 'operator()'は 'const double&'として2つのパラメータを取っています... –
メンバ変数を初期化してください。 ( 'epsilon'はあなたの例で決して初期化されません)。 –