PHP - Ds Stack::allocate() Function



The PHP Ds\Stack::allocate() function is used to allocate enough memory for a required capacity. The capacity of the stack is the memory or the number of elements that the stack can occupy.

If the specified capacity is less than the current stack size, the capacity will not be reduced or the old capacity will remain unchanged. You can use the capacity() function to check the stack current capacity.

Syntax

Following is the syntax of the PHP Ds\Stack::allocate() function −

public Ds\Stack::allocate(int $capacity): void

Parameters

Following is the parameter of this function −

  • capacity − The number of values for which the capacity should be allocated.

Return value

This function does not return any value.

Example 1

The following program demonstrates the usage of the PHP Ds\Stack::allocate() function −

<?php
   $stack = new \Ds\Stack([1, 2, 3]);
   echo "The stack elements are: \n";
   print_r($stack);
   $capacity = 20;
   echo "The capacity needs to be allocated: ".$capacity;
   #using allocate() function
   $stack->allocate($capacity);
   echo "\nThe new capacity of stack after allocated: ";
   print_r($stack->capacity());
?>

Output

The above program produces the following output −

The stack elements are:
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
The capacity needs to be allocated: 20
The new capacity of stack after allocated: 20

Example 2

Following is another example of the PHP Ds\Stack::allocate() function. We use this function to allocate a memory that is 32 for the required capacity of this stack (["Tutorials", "Point", "India"]) −

<?php
   $stack = new \Ds\Stack(["Tutorials", "Point", "India"]);
   echo "The stack elements are: \n";
   print_r($stack);
   echo "The initial capacity of this stack is: ";
   print_r($stack->capacity());
   $capacity = 32;
   echo "\nThe capacity needs to be allocated: ".$capacity;
   #using allocate() function
   $stack->allocate($capacity);
   echo "\nThe new capacity of stack after allocated: ";
   print_r($stack->capacity());
?>

Output

After executing the above program, the following output will be displayed −

The stack elements are:
Ds\Stack Object
(
    [0] => India
    [1] => Point
    [2] => Tutorials
)
The initial capacity of this stack is: 8
The capacity needs to be allocated: 32
The new capacity of stack after allocated: 32

Example 3

If the specified capacity is less than the current capacity of the stack, the old capacity will not be changed.

<?php
   $stack = new \Ds\Stack(['a', 'e', 'i', 'o', 'u']);
   echo "The stack elements are: \n";
   print_r($stack);
   echo "The initial capacity of this stack is: ";
   print_r($stack->capacity());
   $capacity = 5;
   echo "\nThe capacity needs to be allocated: ".$capacity;
   #using allocate() function
   $stack->allocate($capacity);
   echo "\nThe new capacity of stack after allocated: ";
   print_r($stack->capacity());
?>

Output

Once the above program is executed, it will generate the following output −

The stack elements are:
Ds\Stack Object
(
    [0] => u
    [1] => o
    [2] => i
    [3] => e
    [4] => a
)
The initial capacity of this stack is: 8
The capacity needs to be allocated: 5
The new capacity of stack after allocated: 8
php_function_reference.htm
Advertisements