在文档中说“将所有当前值向前移动”,虽然听起来复杂度应该是 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)