пятница, 2 апреля 2010 г.

stl accumulate

Наткнулся на заметку Be Careful with stl::accumulate про использование функции из stl accumulatе.
Смысл заметки в том, что при накоплении суммы элементов float или double необходимо строго указывать тип начального элемента.
vector somevec;
float total sum = accumualte(somevec.begin(), somevec.end(), 0.0)
или
float total sum = accumualte(somevec.begin(), somevec.end(), (float)0);

Недавно столкнулся с похожей ситуацией. Необходимо складывать числа типа short в значение int или __int64. Обходится аналогичным строгим указанием типа, только не как параметра функции, а как параметра шаблона этой функции
Например

short s[20];
int64_t totalsum = accumulate < short*,int64_t>(&(s[0]), &(s[20]), 0);
LangDetectru>de GoogleC
Schwimmer

1 комментарий:

  1. Rundown: An Analysis of The Most Popular Casinos in Europe
    Rundown: An 스포츠토토 증가 샤오미 Analysis 토토 중계 of The Most Popular Casinos in Europe. The Rundown: An Analysis of 토토 총판 처벌 넷마블 The Most Popular Casinos in 메이저 놀이터 순위 Europe. The Rundown: An Analysis of The Most Popular Casinos in 롤 토토사이트 샤오미 Europe. The Rundown: An

    ОтветитьУдалить