Как суммировать std::range?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как суммировать std::range?

Сообщение Anonymous »

Есть ли способ суммировать диапазон C++20, кроме итерации по нему?
Я решаю задачи из Project Euler, чтобы улучшить свои навыки C++, и хотел решить задачу 37 с помощью библиотеки std::ranges.
Мой код выглядит примерно так:

Код: Выделить всё

#include 
#include 
#include 

using namespace std;

bool is_truncatable(const int n)
{
// Blah blah...
}

int truncatable_primes()
{
const auto range = views::iota(10); // Goes on to infinity.
const int total_num_of_truncatable_primes = 11; // Given.
auto all_truncatable_primes = range | views::filter([] (int n) { return is_truncatable(n); })
| views::take(total_num_of_truncatable_primes);

const int sum = accumulate(all_truncatable_primes.begin(), all_truncatable_primes.end(), 0); // Does not compile.

return sum;
}

int main()
{
const auto answer = truncatable_primes();
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78673663/how-to-sum-a-stdrange[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»