Сила STL в C ++ - PullRequest
       39

Сила STL в C ++

3 голосов
/ 31 января 2012

Я нашел STL power в заголовке numeric, который вычисляет power(TYPE T, Integer a) в O (log (a)), но когда я написал это и скомпилировал с g++ это дало мне ошибку компиляции и говорит error: ‘power’ was not declared in this scope.Почему так происходит?Я знаю, что написать мощную функцию, которая вычисляет в O (log (N)), легко, я хочу знать, есть ли готовая функция в стандартных библиотеках C ++.Не добавлена ​​ли какая-либо функция в стандарт C ++ 11?

Ответы [ 4 ]

7 голосов
/ 31 января 2012

Эта функция была в оригинальном STL SGI, но не в стандартной библиотеке.

В библиотеке GNU она доступна как расширение, __gnu_cxx::power в <ext/numeric>.

7 голосов
/ 31 января 2012

На странице, на которую вы ссылаетесь:

Эта функция является расширением SGI;он не является частью стандарта C ++.

Хотя документация SGI часто бывает полезной, имейте в виду, что она содержит несколько отклонений от стандарта.

5 голосов
/ 31 января 2012

Нет, в C ++ 11 нет std::power или подобных алгоритмов.

2 голосов
/ 31 января 2012

В заголовке <cmath> есть несколько перегрузок для стандартных числовых типов.Есть ли конкретная причина, по которой вам нужна шаблонная версия?

...