Различные способы преобразования вектора в массив в C++ STL

Опубликовано: 28 Января, 2023

Массив — это набор данных, принадлежащих примитивному типу данных. Данные в этом хранятся в постоянной памяти. Векторы — это динамические массивы, размеры которых можно изменять в соответствии с потребностями. Мы можем преобразовать векторы в массивы следующими способами, указанными ниже.

Пример:

Input : Vector: [1, 2, 3, 4, 5]
Output: Array: [1, 2, 3, 4, 5]

Input : Vector: [‘G’, ‘e’, ‘e’, ‘k’, ‘s’] 
Output: Array: [‘G’, ‘e’, ‘e’, ‘k’, ‘s’] 

Здесь мы обсудим 5 способов преобразования вектора в массив в C++ STL:

  1. Наивный подход к преобразованию вектора в массив
  2. Использование функции copy() в C++ STL
  3. Использование функции transform() в C++ STL
  4. Использование функции data() в C++ STL
  5. Использование оператора & в C++

1. Наивный подход к преобразованию вектора в массив

Вектор можно преобразовать в массив, предварительно выделив память массива, достаточную для размещения всех элементов вектора. Затем мы запускаем цикл for и копируем каждый элемент вектора в массив.

Пример:

Временная сложность: O(n)
Вспомогательное пространство: O(n)

2. Использование функции copy() в C++ STL

Функция copy() в C++ используется для копирования диапазона элементов из одного контейнера в другой. Он принимает 3 аргумента: указатель на начало исходного контейнера, указатель на конец исходного контейнера и указатель на начало целевого контейнера.

Пример:

Временная сложность: O(n)
Вспомогательное пространство: O(n)

3. Использование функции transform() в C++ STL

Функция transform() в C++ используется для копирования диапазона элементов из одного контейнера в другой на основе унарной операции. Он принимает 4 параметра, которые включают указатель на начало исходного контейнера, указатель на конец исходного контейнера и указатель на начало целевого контейнера, унарная операция.

Пример:

Временная сложность: O(n)
Вспомогательное пространство: O(n)

4. Использование функции data() в C++ STL

Функция data() в C++ используется для копирования вектора в массив путем возврата указателя на первый элемент в массиве, который используется внутри вектора. Эта функция не принимает никаких параметров.

Пример:

Временная сложность: O(n)
Вспомогательное пространство: O(n)

5. Использование оператора & в C++

Оператор & в C++ используется для копирования вектора в массив путем возврата адреса первого элемента вектора во внутреннюю структуру массива.

Пример:

Временная сложность: O(n)
Вспомогательное пространство: O(n)