digitalmars.D.learn - countUntil for SortedRange
- Laeeth Isharc (11/11) Aug 11 2015 Hi.
- John Colvin (5/16) Aug 11 2015 Yeah, I was wrong when I said it was treated specially.
- Laeeth Isharc (3/26) Aug 11 2015 Thanks, John.
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
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
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:Thanks, John. LaeethHi. 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