On 12/04/2015 03:41 AM, Jakob Ovrum wrote:
On Friday, 4 December 2015 at 06:05:55 UTC, Tofu Ninja wrote:
When would a generic algorithm even need to know the complexity of the
container?
A generic algorithm that uses exponential time when given the "wrong"
inputs is a hidden danger. This can easily happen when composing with
linear algorithms. This naming scheme, also employed by std.container,
prevents this.
Also maybe a simpler idea would just be to annotate the the operations
with there complexity with UDAs. That way things that really care
about the complexity can get it, and those who don't can ignore it. It
has the benefit of being self documenting as well.
If you don't care about the complexity, why are you using collections?
Just use T[] and T[U]. Surely choosing a data structure is all about
complexity (barring some details like optimizing for cache locality or
small data structures).
WORD! -- Andrei