Преобразуем std::vector в массив C++
В C++ вы можете преобразовать вектор в массив, используя стандартные функции и возможности языка.
Вариант 1
#include <iostream>
#include <vector>
#include <array>
int main() {
// Создаем вектор
std::vector<int> vec = { 1, 2, 3, 4, 5 };
// Преобразуем вектор в массив
std::array<int, 5> arr;
std::copy(vec.begin(), vec.end(), arr.begin());
// Выводим элементы массива
for (const auto& elem : arr) {
std::cout << elem << " ";
}
return 0;
}В представленном примере мы создаем вектор vec с пятью элементами.
С помощью std::copy копируем элементы из вектора в массив arr.
Используем цикл для вывода элементов массива.
Обратите внимание, что размер массива должен быть известен заранее, так как std::array имеет фиксированный размер.
Вариант 2
#include <iostream>
#include<vector>
using namespace std;
int main()
{
system("chcp 1251>null");
vector<string> name{ "Алексей", "Илья","Добрыня","Иван" };
string* newname = &name[0];
for (auto s : name) cout << s << " ";
cout << endl << endl;
system("pause");
}Создается вектор name, который содержит четыре строки: "Алексей", "Илья", "Добрыня" и "Иван". Создается указатель newname, который указывает на первый элемент вектора name. Это позволяет работать с элементами вектора как с обычным массивом. Используется цикл for для перебора всех элементов вектора name.
Если вы используете C++20, можно использовать std::span для работы с массивами и векторами.
Вариант 3
#include <iostream>
#include <vector>
#include <array>
#include <span>
int main() {
std::vector<int> vec = { 1, 2, 3, 4, 5 };
// Создаем span от вектора
std::span<int> span(vec.data(), vec.size());
// Выводим элементы span
for (int i : span) {
std::cout << i << " ";
}
return 0;
}Создается вектор vec, который содержит пять целых чисел: 1, 2, 3, 4 и 5. Создается объект span, который представляет собой непрерывный диапазон элементов, ссылаясь на данные вектора vec. vec.data() возвращает указатель на первый элемент вектора. vec.size() указывает количество элементов в векторе. std::span позволяет работать с массивами и векторами более удобно, без необходимости копирования данных.