Thanks, yes, that did work. However now when trying to insert
nodes I get this error: Cannot grow a heap created over a range.
I This is what I have:
Node[] a;
auto b = BinaryHeap!(Node[], "a.fScore > b.fScore")(a);
Node test, test2;
test2.fScore = 9;
test.fScore = 10;
b.insert( test );
I also tried this:
Node[2500] a;
auto b = BinaryHeap!(Node[], "a.fScore > b.fScore")(a);
Node test, test2;
test2.fScore = 9;
test.fScore = 10;
b.insert( test );
It gives the same error.
I also tried this:
Node[2500] a;
auto b = BinaryHeap!(Array!Node, "a.fScore > b.fScore")(a);
Node test, test2;
test2.fScore = 9;
test.fScore = 10;
b.insert( test );
Error 1 Error: this._store()[this._length()] is not an
lvalue C:\DLang\dmd2\src\phobos\std\container.d 2676
How exactly would I grow this heap? or How would I give it enough
room so that I don't need to make it larger?
On Tuesday, 3 April 2012 at 11:28:06 UTC, Timon Gehr wrote:
On 04/03/2012 05:17 AM, Chris Pons wrote:
I'm still having troubles with the min-heap.
Node[] a;
auto b = BinaryHeap!"a.fScore > b.fScore"( a[] );
Error 1 Error: template instance BinaryHeap!("a.fScore >
b.fScore") BinaryHeap!("a.fScore > b.fScore") does not match
template declaration BinaryHeap(Store,alias less = "a < b") if
(isRandomAccessRange!(Store) ||
isRandomAccessRange!(typeof(Store.init[])))
C:\Users\CP\Documents\Visual
Studio 2010\Projects\D\STDS\NPC.d 252
That is an API design issue. This should work:
auto b = BinaryHeap!(Node[], "a.fScore > b.fScore")(a);