0

サブネット クラスの比較演算子を定義したいと思います。私が最初に考えたのは、サブネット内のホストの数を比較する必要があるということです。

192.168.0.0/24 < 192.168.0.0/23
               ||
               \/
254            < 510 (evaluates true)

サイズが似ているが異なるサブネットが2つある場合、どうすればよいかわかりません。

10.0.0.0/24 < 192.168.0.0/24
            ||
            \/
254         < 254 (evaluates ?)
4

1 に答える 1

0

ペア を辞書式順序で注文でき(size, address)ます。これにより、最小のサブネットが最初に配置され、1つのサイズ内で、ネットワークアドレス値で並べ替えられます。

struct netclass { uint32_t size; uint32_t addr; };

bool operator<(netclass const & nc1, netclass const & nc2)
{
    return (nc1.size < nc2.size) ||
           (!(nc2.size < nc1.size) && (nc1.addr < nc2.addr));
}
于 2012-09-06T21:39:26.730 に答える