Операторы сравнения для класса подсети

Я хотел бы определить оператор сравнения для класса подсети. Моя первая мысль заключается в том, что мы должны сравнивать количество хостов в подсети:

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 ?)

0

Решение

Вы можете заказать лексикографически пары (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));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]