Если b
является небольшим поддиапазоном a
, можно уточнить ответ Алока следующим образом:
import numpy as np
a = np.zeros( 100000, int )
b = np.array( [99999, 99997, 99999] )
blo, bhi = b.min(), b.max()
bbins = np.bincount( b - blo )
a[blo:bhi+1] += bbins
print a[blo:bhi+1] # 1 0 2
Это пережиток прежних времен, когда у нас было несколько «зон» для выделения. В наши дни все приложения имеют только одну зону, в которой производятся все выделения, но класс NSZone
все еще существует и его слишком много. код написан так, чтобы зависеть от +allocWithZone:
, являющегося основным методом выделения для внесения изменений.
Короче говоря, вы можете полностью игнорировать структуру NSZone
, и единственная причина заботиться о +allocWithZone:
- это необходимость переопределить ее. Аналогично -copyWithZone:
, вы можете просто игнорировать зону. Если вы хотите, вы можете позвонить +allocWithZone:
, проходя в той же зоне, но это не будет иметь никакого значения.