3
私は2 std::array
をとる単純な関数を作りました。別のstd::array
を返し、std::arrays
の値の平均値を返します。テンプレートを使ってベクトルの平均を計算する
template<typename T, std::size_t N>
std::array<T, N> average(const std::array<T, N>& a1, const std::array<T, N>& a2)
{
std::array<T, N> array;
for (std::size_t i = 0; i < N; ++i)
array[i] = (a1[i] + a2[i])/2;
return array;
}
完全に動作します。今私はNベクトルの平均を計算したいと思います。誰かが私を助けてくださいすることができますので、私も働く。この
template<typename T, std::size_t N, typename... Ts>
std::array<T, N> average(const Ts&... args)
{
std::array<T, N> result;
for (std::size_t i = 0; i < N; ++i)
{
T addedValues = 0;
for (const auto& array : { args... })
addedValues += array[i];
result[i] = addedValues/sizeof...(args);
}
return result;
}
を作ったが、私は
std::array<int, 3> a{ 1, 2, 3 };
std::array<int, 3> b{ 3, 4, 5 };
auto c = average<int, 3>(a, b); //'<int, 3>' not good, possible without?
たテンプレート引数を指定する必要があり、私は、別の方法を考えることができませんでしたか?
タイプ。 – lorro
@lorro良い点は、行う:) – Rakete1111