www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Binary heap: obtain a _reference_ to the front of the heap

reply Johan Engelen <j j.nl> writes:
In the binary heap documentation, I read that 
`BinaryHeap.front()` "Returns a copy of the front of the heap". 
[1]
Is there no function to access the front of the heap without a 
copy?  (micro-optimization)

Thanks,
   Johan

[1] 
https://dlang.org/phobos/std_container_binaryheap.html#.BinaryHeap.front
Sep 13 2016
next sibling parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Tuesday, 13 September 2016 at 08:19:04 UTC, Johan Engelen 
wrote:
 In the binary heap documentation, I read that 
 `BinaryHeap.front()` "Returns a copy of the front of the heap". 
 [1]
 Is there no function to access the front of the heap without a 
 copy?  (micro-optimization)

 Thanks,
   Johan

 [1] 
 https://dlang.org/phobos/std_container_binaryheap.html#.BinaryHeap.front
What does foreach(ref e; bh) { //... } do?
Sep 13 2016
parent Johan Engelen <j j.nl> writes:
On Tuesday, 13 September 2016 at 08:55:15 UTC, Nicholas Wilson 
wrote:
 On Tuesday, 13 September 2016 at 08:19:04 UTC, Johan Engelen 
 wrote:
 In the binary heap documentation, I read that 
 `BinaryHeap.front()` "Returns a copy of the front of the 
 heap". [1]
 Is there no function to access the front of the heap without a 
 copy?  (micro-optimization)

 Thanks,
   Johan

 [1] 
 https://dlang.org/phobos/std_container_binaryheap.html#.BinaryHeap.front
What does foreach(ref e; bh) { //... } do?
It copies the front of the heap on every iteration.
Sep 14 2016
prev sibling parent Johan Engelen <j j.nl> writes:
On Tuesday, 13 September 2016 at 08:19:04 UTC, Johan Engelen 
wrote:
 In the binary heap documentation, I read that 
 `BinaryHeap.front()` "Returns a copy of the front of the heap". 
 [1]
 Is there no function to access the front of the heap without a 
 copy?  (micro-optimization)
Answering myself here: the binary heap element type should be cheap to copy, because it is going to be copied around a lot (for the common implementation on top of an array).
Sep 15 2016