Note that the original article describes space complexity as "N + O(sqrt N)", i.e., there are N records and O(sqrt N) extra space.
Their data structure is considerably more complex than traditional implementations of std::deque, I wonder if it is actually of any practical interest.
* Random access - constant O(1)
* Insertion or removal of elements at the end or beginning - constant O(1)
* Insertion or removal of elements - linear O(n)
[1] does not mention a linear space requirement, it mentions O(1) time for random access and removal of elements. Both major implementations implement std::deque in this way libstdc++ [2] and libc++ [3], but you say it can't be so. Well well.
I don't get what you're arguing against, if anything. Can you make an actual claim and tell me where I'm wrong? Literally all I've been saying so far is that std::deque does not meet the O(sqrt n) space overhead of compact dynamic arrays. i.e.: yes it is more exotic than a mere std::deque, which is precisely the question you were asking and I was answering initially. So you're saying I'm wrong, or what? If you're saying I'm wrong, which implementation of std::deque do you think meets that overhead spec?
"No, std::deque has O(n) space overhead... the goal here is to get that to O(sqrt(n))," implies that compact dynamic array can't be used for std::deque, when it is used as such, also I did not find a source that states this space requirement for std::deque in the first place.
...you were asking what's so "exotic" about compact dynamic arrays if they're just deques? I'm telling you they're not deques, because they have additional constraints that deques don't have.
Are you intentionally twisting this backwards or something? You're basically turning the conversation into something like this:
You: "Penguins are birds, right? What's so exotic about penguins when I see all these birds flying around me?"
Me: "Penguins live in Antarctica... and don't fly... (hence why people find them exotic...)"
You: "But who says birds can't live in Antarctica?? And chickens can't fly either. And penguins are birds. So what's so exotic about penguins?"
Me: {what sane response can I even give you here?!}
________________________________________
But anyway...
> implies that compact dynamic array can't be used for std::deque, when it is used as such
To entertain your new argument here:
Deque requires references to existing elements not to be invalidated when new elements are appended. I don't know how compact dynamic arrays work, but dynamic arrays generally move elements around in memory while maintaining guaranteed worst-case O(1)-time access to them, so it seems kind of impossible for them to meet both requirements.