В вашей версии A
вы создаете копию кластера в этой строке:
c = cluster;
Поэтому, когда вы делаете
c.add_pixel(pixel);
, вы не меняете * Диапазон 1008 *.
По той же причине этот l oop:
for (auto cluster : clusters)
{
cluster.clear_pixels();
}
фактически не очищает пиксели любого кластера в clusters
, поскольку каждый cluster
является копией. Если вы действительно хотите сослаться на каждый кластер в clusters
, вам нужно сделать это:
for (auto & cluster : clusters)
{
cluster.clear_pixels();
}