0

我想为子网类定义一些比较运算符。我的第一个想法是我们应该比较子网中的主机数量:

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

我不确定在两个大小相似但不同的子网的情况下应该做什么:

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

1 回答 1

0

您可以按字典顺序对pair (size, address)进行排序。这将最小的子网放在首位,在一个大小内,您按网络地址值排序:

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 回答