www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - countUntil for SortedRange

reply "Laeeth Isharc" <laeethnospam nospamlaeeth.com> writes:
Hi.

Basic question: suppose I have a SortedRange and want to find the 
index of the first entry of an array of structs matching a needle 
struct.

What's the best way to do that?  It's not clear that countUntil 
treats a SortedRange specially.

I could get the lowerBound and then length or walkLength (can't 
remember which applies).

But I figure there must be a better way.

Thanks.


Laeeth.
Aug 11 2015
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Tuesday, 11 August 2015 at 19:30:02 UTC, Laeeth Isharc wrote:
 Hi.

 Basic question: suppose I have a SortedRange and want to find 
 the index of the first entry of an array of structs matching a 
 needle struct.

 What's the best way to do that?  It's not clear that countUntil 
 treats a SortedRange specially.

 I could get the lowerBound and then length or walkLength (can't 
 remember which applies).

 But I figure there must be a better way.

 Thanks.


 Laeeth.
Yeah, I was wrong when I said it was treated specially. lowerBound followed by length should do it without any notable inefficiencies. I guess you could wrap it as `sortedCountUntil` for convenience if you like.
Aug 11 2015
parent "Laeeth Isharc" <Laeeth.nospam nospam-laeeth.com> writes:
On Tuesday, 11 August 2015 at 21:38:49 UTC, John Colvin wrote:
 On Tuesday, 11 August 2015 at 19:30:02 UTC, Laeeth Isharc wrote:
 Hi.

 Basic question: suppose I have a SortedRange and want to find 
 the index of the first entry of an array of structs matching a 
 needle struct.

 What's the best way to do that?  It's not clear that 
 countUntil treats a SortedRange specially.

 I could get the lowerBound and then length or walkLength 
 (can't remember which applies).

 But I figure there must be a better way.

 Thanks.


 Laeeth.
Yeah, I was wrong when I said it was treated specially. lowerBound followed by length should do it without any notable inefficiencies. I guess you could wrap it as `sortedCountUntil` for convenience if you like.
Thanks, John. Laeeth
Aug 11 2015