#include <iostream>
#include <array>

template<typename T, size_t SZ> void timesTwo(std::array<T, SZ>& arr) {
	for (auto& a : arr) {
		a *= 2;
	}
}


int main() {
	std::array<int, 5> arr1 = { 1, 2, 3, 4, 5 };

	std::array<int, 16> arr2;
	arr2.fill(0);
	for (int i = 1; i < 16; i++) {
		int temp = arr2[i - 1] * 2;
		arr2[i] = (temp ? temp : 1);
	}
	
	std::array<float, 3> arr3 = { 1.1, 2.2, 3.3 };
	
	timesTwo(arr1);
	timesTwo(arr2);
	timesTwo(arr3);
	
	for (auto& a : arr1) {
		std::cout << a << " ";
	}
	std::cout << std::endl;
	
	for (auto& a : arr2) {
		std::cout << a << " ";
	}
	std::cout << std::endl;
	
	for (auto& a : arr3) {
		std::cout << a << " ";
	}
	std::cout << std::endl;
}