简单的数组求和

#include <iostream>

template<typename T, std::size_t N>
constexpr std::size_t GetArrySize(T (&)[N]) noexcept {
    return N;
}

template<typename T>
constexpr auto Add(T&& arr) noexcept {
    std::size_t sz = GetArrySize(arr);
    decltype(arr[0]) val  = arr[0] ;
    for (size_t i = 1; i < sz; ++i) {
        val += arr[i];
    }
   
    return val;
}

int main()
{ 
    int Arr[] = { 1, 2, 3, 4, 5 };
   //std::cout << GetArrySize(Arr) << std::endl;
   std::cout << Add(Arr) << std::endl;
   float Arr1[] = { 1.1f, 2.2f, 3.3f };
   std::cout << Add(Arr1) << std::endl;
   double Arr2[] = { 1.1 };
   std::cout << Add(Arr2) << std::endl;
}
posted @ 2022-02-18 21:58  cyssmile  阅读(45)  评论(0编辑  收藏  举报