PHP - Ds Sequence::allocate() 函式



PHP 的 Ds\Sequence::allocate() 函式用於為 Sequence 的所需容量分配足夠的記憶體。Sequence 的容量是指 Sequence 可以容納的記憶體或元素數量。

如果 Sequence 的當前容量大於已分配的容量,則舊容量保持不變,不會分配新的容量。可以使用 capacity() 函式檢查 Sequence 的當前容量。

語法

以下是 PHP Ds\Sequence::allocate() 函式的語法:

abstract public Ds\Sequence::allocate(int $capacity): void

引數

此函式接受一個引數,如下所述:

  • capacity - 需要分配的容量。

返回值

此函式不返回任何值。

示例 1

以下是 PHP Ds\Sequence::allocate() 函式的基本示例:

<?php 
   $seq = new \Ds\Vector([]);
   echo "The sequence elements are: \n";
   print_r($seq);
   #using allocate() function
   $capacity = 30;
   echo "The capacity to be allocated: ".$capacity;
   $seq->allocate($capacity);
   echo "\nThe capacity after allocated: ";
   print_r($seq->capacity());
?>

輸出

以上程式輸出如下:

The sequence elements are:
Ds\Vector Object
(
)
The capacity to be allocated: 30
The capacity after allocated: 30

示例 2

以下是 PHP Ds\Sequence::allocate() 函式的另一個示例。我們使用此函式為此序列 ([10, 20, 30, 40, 50]) 分配新的容量 64

<?php 
   $seq = new \Ds\Stack([10, 20, 30, 40, 50]);
   echo "The sequence elements are: \n";
   print_r($seq);
   echo "The current capacity before allocation: ";
   print_r($seq->capacity());
   $capacity = 64;
   echo "\nThe capacity need to be allocated: ".$capacity;
   #using allocate() function
   $seq->allocate($capacity);
   echo "\nThe capacity after allocated: ";
   print_r($seq->capacity());
?>

輸出

執行上述程式後,將顯示以下輸出:

The sequence elements are:
Ds\Stack Object
(
    [0] => 50
    [1] => 40
    [2] => 30
    [3] => 20
    [4] => 10
)
The current capacity before allocation: 8
The capacity need to be allocated: 64
The capacity after allocated: 64

示例 3

如果已分配的容量小於 Sequence 的當前容量,則舊容量將保持不變:

<?php 
   $seq = new \Ds\Set(['a', 'e', 'i', 'o', 'u']);
   echo "The sequence elements are: \n";
   print_r($seq);
   echo "The current capacity before allocation: ";
   print_r($seq->capacity());
   $capacity = 4;
   echo "\nThe capacity need to be allocated: ".$capacity;
   #using allocate() function
   $seq->allocate($capacity);
   echo "\nThe capacity after allocated: ";
   print_r($seq->capacity());
?>

輸出

執行上述程式後,將顯示以下輸出:

The sequence elements are:
Ds\Set Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The current capacity before allocation: 8
The capacity need to be allocated: 4
The capacity after allocated: 8
php_function_reference.htm
廣告