On Tuesday, 28 May 2013 at 19:24:05 UTC, Steven Schveighoffer
wrote:
You know, it is trivial to have an O(1) splice O(n) length list
wrapped into an o(n) splice O(1) length list. All you need is
to add a tracked length. And this is a REAL pain when you have
to do it manually. There should just be two list types in
<list>
I think having two lists in list would be overkill.
I *do* find the standard's choice odd though: The *primary*
reason I ever use list, ever, is for its splice ability to move
elements without copying them, and still having their addresses
valid. No other container can do that.
I don't get why they borked list's primary strength for a
function you really shouldn't be using anyway. Worst, as you say,
it is easy to implement one in terms of the other... but not the
other way around. By doing what they just did, they effectively
closed *any* way to splice in 0(1)...
If you don't need splice, then most of the time, deque is a
better choice of a container, and *that* has 0(1) length (along
with a few neat properties).
All this really doesn't make sense to me.