Массив для инициализации вектора

Задания раздела 3.5.5
3.41. Напишите программу, инициализирующую вектор значениями из массива целых чисел.
3.42. Напишите программу, копирующую вектор целых чисел в массив целых чисел.

3.41. Напишите программу, инициализирующую вектор значениями из массива целых чисел.
И никаких пушбэков.
#include <iostream>
#include <vector>
int main()
{
int arr[]={0,1,2,3,4,5};
std::vector<int> v_arr(std::begin(arr),std::end(arr));
for (auto i: v_arr) std::cout << i << " ";
return(0);
}
Создавать вектор можно и диапазоном массива, например так:
std::vector<int> v_arr(arr+1,arr+6);

3.42. Напишите программу, копирующую вектор целых чисел в массив целых чисел.
Так как размер массив заранее определен, а вектор - нет, и вектор может быть дополнен в любой момент, а это чревато. Но я буду писать программу без проверок (ошибиться трудно в такой простой программе).
Создам вектор, заполню его в цикле. Одновременно с заполнением вектора буду копировать его элементы в массив целых чисел (возможно, стоит разделить заполнение и копирование на два цикла).
#include <iostream>
#include <vector>
int main()
{
int arr[6]={};
std::vector<int> v_arr;
for (int i=0;i<6;++i) {
v_arr.push_back(i); *(arr+i)=v_arr[i];
std::cout << i << " ";
}
std::cout << std::endl;
for (auto i :arr) {
std::cout << i << " ";
}
return(0);
}

Добавить комментарий