Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.04.2023
Сообщений: 25

Двупоточное вычисление суммы чисел

04.04.2023, 08:02. Показов 1412. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка в коде, пишет, что отсутствует экземпляры шаблона функции PartialSum_1. Делал с void нормально работает. В чем может быть ошибка?
C++
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
32
33
#include <iostream>
#include <vector>
#include <thread>
 
// Функция вычисления суммы чисел, параметры итераторы на начало и на конец чисел
template<typename Iterator, typename T>
T PartialSum_1(Iterator first, Iterator last) {
    T result = 0;
    for (auto it = first; it < last; ++it) {
        result += *it;
    }
    return result;
}
 
int PartialSum_2(std::vector<int>::iterator first, std::vector<int>::iterator last) {
    int result = 0;
    for (std::vector<int>::iterator it = first; it < last; ++it) {
        result += *it;
    }
    return result;
}
 
int main() {
    system("chcp 1251 > nul");
    int sum1 = 0, sum2 = 0;
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    auto mid = numbers.begin() + distance(numbers.begin(), numbers.end()) / 2; // итератор на середину массива
    std::thread th1([&]() { sum1 = PartialSum_1(numbers.begin(), mid); }); // Считаем первую половину чисел
    std::thread th2([&]() { sum2 = PartialSum_2(mid, numbers.end()); }); // Считаем вторую половину
    th1.join();
    th2.join();
    std::cout << "Сумма = " << sum1 + sum2 << "\n"; // Вывод результата
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2023, 08:02
Ответы с готовыми решениями:

Вычисление суммы квадратов четных чисел и суммы кубов нечетных чисел
Написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N. Проверку числа на четность осуществить с помощью...

Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
1) Написать программу для вычисления суммы четных и суммы нечетных чисел в одномерном массиве!

Вычисление суммы S квадратов чисел от 1 до N
С помощью цикла «пока» или цикла «до» написать программу вычисления суммы S квадратов чисел от 1 до N.

21
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,282
04.04.2023, 12:47
Лучший ответ Сообщение было отмечено faith09 как решение

Решение

Студворк — интернет-сервис помощи студентам
KSergey9,
C++
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
#include <iostream>
#include <vector>
#include <thread>
#include <iterator>
 
template<class Iter>
auto PartialSum_1(Iter first, Iter last)
{
    typename std::iterator_traits<Iter>::value_type result{};
    for (auto it = first; it != last; ++it)
    {
        result += *it;
    }
    return result;
}
 
int main()
{
    int sum1 = 0, sum2 = 0;
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    auto mid = numbers.begin() + distance(numbers.begin(), numbers.end()) / 2;
    std::thread th1([&sum1,&numbers,mid]() { sum1 = PartialSum_1(numbers.begin(), mid); });
    std::thread th2([&sum2,&numbers,mid]() { sum2 = PartialSum_1(mid, numbers.end()); });
    th1.join();
    th2.join();
    std::cout << "Sum = " << sum1 + sum2 << '\n'; // Вывод результата
}
2
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
04.04.2023, 14:25
Цитата Сообщение от KSergey9 Посмотреть сообщение
В том, что функция потока не может возвращать значение.
она и не возвращает. Функция потока это анонимная функция, оборачивающая PartialSum
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2023, 14:25

Вычисление суммы простых чисел
Написать программу, которая вычисляет сумму простых чисел от 1 до*n, введенного с клавиатуры. Программа должна проверять корректность...

Вычисление суммы квадратов чисел от 1 до 20
Всем привет, нужна помощь, буду очень благодарен. 1.(использования оператора switch) По заданному числовому коду учебной группы,...

вычисление суммы ряда из 10 чисел
срочно нужно на экзамене сижу, а как делать фиг знает 3 задание

Вычисление суммы нечетных чисел от 1 до N
Составьте программу, которая вычисляет сумму нечетных чисел от 1 до N. Значение N вводится с клавиатуры.

Вычисление суммы чисел, кратных 29
Составьте программу вычисления суммы чисел кратных 29 в диапазоне от 29 до 1160.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru