::Hikaru's blog

調べたこと, 考えたことをメモ.
<< August 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

スポンサーサイト

一定期間更新がないため広告を表示しています

- | permalink | - | -
<< 不完全型のdelete | main | 複雑な宣言の読み方 >>

多次元配列の全要素を積算する

#include <numeric> template<class Ty> struct sum_t { typedef Ty type; }; template<class Ty, size_t N> struct sum_t<Ty[N]> // 部分特殊化 { typedef typename sum_t<Ty>::type type; }; template<class Ty, size_t N> typename sum_t<Ty>::type sum(Ty (&arr)[N]) { typedef typename sum_t<Ty>::type Result; Result* p = reinterpret_cast<Result*>(arr); return std::accumulate(p, p + sizeof(arr) / sizeof(Result), Result()); } int main() { double arr[][3][3] = { {{11,12,13},{14,15,16},{17,18,19}}, {{21,22,23},{24,25,26},{27,28,29}}, {{31,32,33},{34,35,36},{37,38,39}}, }; double ret = sum(arr); }
C, C++ | permalink | comments(0) | trackbacks(0)

スポンサーサイト

- | permalink | - | -

この記事に対するコメント

コメントする









この記事のトラックバックURL
http://hikarukaru.jugem.cc/trackback/100
この記事に対するトラックバック