文档中说“将所有当前值向前移动”,虽然听起来复杂度应该是 O(N),但我检查了 https://github.com/php-ds/ext-ds/blob/master/src/ds/ds_deque.c#L366 中的代码,实际上对于每个元素来说是 O(1)
(PECL ds >= 1.0.0)
Ds\Deque::unshift — 在双端队列的开头添加值
values
要添加到双端队列开头的值。
注意:
多个值将按照传递的顺序添加。
不返回值。
范例 #1 Ds\Deque::unshift() 范例
<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->unshift("a");
$deque->unshift("b", "c");
print_r($deque);
?>
以上范例将输出类似于
Ds\Deque Object ( [0] => b [1] => c [2] => a [3] => 1 [4] => 2 [5] => 3 )
文档中说“将所有当前值向前移动”,虽然听起来复杂度应该是 O(N),但我检查了 https://github.com/php-ds/ext-ds/blob/master/src/ds/ds_deque.c#L366 中的代码,实际上对于每个元素来说是 O(1)