したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

3059ACUVE★:2011/01/29(土) 20:33:40
>>3056
gist: 81f0743190b309b43408 - GitHub
https://gist.github.com/81f0743190b309b43408
-----
template<typename T>
class SumArray{
private:
std::vector<T> vec;

protected:
unsigned int const n;

public:
SumArray(unsigned int const _n):
vec(_n, T{}),
n(_n)
{}
SumArray(std::vector<T> const &_vec):
vec(_vec),
n(vec.size())
{}
SumArray(std::vector<T> &&_vec):
vec(_vec),
n(vec.size())
{}

T GetSum(unsigned int const i) const{
T t{};
for(unsigned int j = i + 1; j; j ^= j & -j){
t += vec[j - 1];
}
return t;
}
void AddVal(unsigned int const i, T val){
for(unsigned int j = i; j < n; j = j | (j + 1)){
vec[j] += val;
}
}
};


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板