Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469

Ошибка в библиотеке algorithm

11.03.2018, 23:25. Показов 4154. Ответов 20

Студворк — интернет-сервис помощи студентам
Здравствуйте, при компиляции вылетает ошибка
Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 1 аргументов long arifmetics C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.1 2.25827\include\algorithm
строка 105
Пожалуйста, подскажите как исправить.
Вот код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <vector>
#include <iostream>
 
#include <algorithm>
using namespace std;
class big_integer {
public:
    vector <int> b;
 
    big_integer(vector <int> b) {
        this->b = b;
    }
    vector <int> operator+(big_integer num) {
        vector <int> obj;
        long long size;
 
        auto iterator = obj.begin();
        if (this->b.size() > num.b.size()) size = this->b.size();
        else size = num.b.size();
        for (long long int i = size - 1; i >= 0; i--) {
            int param = this->b[i] + num.b[i];
            int param_save;
            if (param >= 10) {
                this->b[i - 1] += 1;
                param_save = param;
                param %= 10;
            }
         obj.emplace(iterator, param);
         if (i == 0 && param_save >= 10) {
             obj.emplace(iterator,1);
             break;
         }
        }
        return obj;
    }
};
int main() {
    big_integer a(vector <int> (999999999999));
    big_integer b(vector <int> (111111111111));
        big_integer z(a + b);
    auto itbeg = z.b.begin();
    auto itend = a.b.end();
    
    for_each(itbeg, itend, z.b); //error
    cin.get();
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2018, 23:25
Ответы с готовыми решениями:

Нужна информация о библиотеке <algorithm>
ребят, может кто сказать, где и как можно разобраться, как с ней работать, она очень удобна, но и понять стоит :D

find_if бибилиотеки algorithm, ошибка в строчке
Программа считает частоту появления букв в строке Подскажите, что не нравится компилятору в строчке find_if ? Проверяю, если буква уже...

Ошибка при одновременном подключении windows.h и algorithm.h
Здравствуйте. Возникла ошибка следующего рода, при одновременном подключении windows.h и algorithm.h возникает конфликт между макросом max...

20
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
11.03.2018, 23:28
Лучший ответ Сообщение было отмечено Pashka Durov как решение

Решение

Ошибка в библиотеке algorithm
Срочно пиши о баге в компиляторе!

C++
1
for_each(itbeg, itend, z.b); //error
И что должно произойти? for_each ожидает унарный функтор в качестве третьего параметра.
1
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 00:23  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
унарный функтор
Дико извиняюсь, но что это, просто объяснения простым языком я не нашел
Цитата Сообщение от Croessmah Посмотреть сообщение
Срочно пиши о баге в компиляторе!
это сарказм?
UPD:
ААА дошло
Всё

Добавлено через 6 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
унарный функтор
А какой он должен быть, просто display функция не воспринимает
(смотрю видео на ютубе, но там показывают display)

Добавлено через 39 минут
Теперь всё компилируется, но вылетает консоль и вызывается throw_bad_alloc
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <vector>
#include <iostream>
 
#include <algorithm>
using namespace std;
class big_integer {
public:
    vector <int> b;
 
    big_integer(vector <int> b) {
        this->b = b;
    }
    vector <int> operator+(big_integer num) {
        vector <int> obj;
        long long size;
 
        auto iterator = obj.begin();
        if (this->b.size() > num.b.size()) size = this->b.size();
        else size = num.b.size();
        for (long long int i = size - 1; i >= 0; i--) {
            int param = this->b[i] + num.b[i];
            int param_save;
            if (param >= 10) {
                this->b[i - 1] += 1;
                param_save = param;
                param %= 10;
            }
         obj.emplace(iterator, param);
         if (i == 0 && param_save >= 10) {
             obj.emplace(iterator,1);
             break;
         }
        }
        return obj;
    }
};
int main() {
    big_integer a(vector <int> (999999999999));
    big_integer b(vector <int> (111111111111));
    big_integer z(a + b);
    
    for (vector<int>::iterator it = z.b.begin(); it != z.b.end(); ++it)
        cout << *it;
 
    cin.get();
    return 0;
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 00:39
Цитата Сообщение от Pashka Durov Посмотреть сообщение
C++
1
2
big_integer a(vector <int> (999999999999)); 
big_integer b(vector <int> (111111111111));
Не слишком большие векторы?
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 00:42  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Не слишком большие векторы?
Векторы же не ограничены в размере
UPD: точнее ограничены оперативкой
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 00:44
Цитата Сообщение от Pashka Durov Посмотреть сообщение
точнее ограничены оперативкой
Вот и я о том же.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 00:46  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Вот и я о том же.
Нет, не в этом дело, вылетает даже при значениях 1 и 9
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 01:01
Цитата Сообщение от Pashka Durov Посмотреть сообщение
Нет, не в этом дело, вылетает даже при значениях 1 и 9
И тоже это: throw_bad_alloc?
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 01:10  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
И тоже это: throw_bad_alloc
Ай забыл сказать, что нет
Миниатюры
Ошибка в библиотеке algorithm  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 01:13
Цитата Сообщение от Pashka Durov Посмотреть сообщение
Ай забыл сказать, что нет
Значит это:
Цитата Сообщение от Pashka Durov Посмотреть сообщение
вызывается throw_bad_alloc
из-за слишком больших векторов.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 01:17  [ТС]
nd2, ок, но тогда почему вызывается другое исключение и программа не работает
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 01:23
Цитата Сообщение от Pashka Durov Посмотреть сообщение
но тогда почему вызывается другое исключение и программа не работает
Не хочется говорить банальностей, но у тебя ошибка в коде (и, может быть, не одна).
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 01:26  [ТС]
nd2, вопрос в том где она, ибо сам я не смогу ее найти -_-
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 03:02
Цитата Сообщение от Pashka Durov Посмотреть сообщение
C++
1
2
3
4
if (this->b.size() > num.b.size()) 
    size = this->b.size(); 
else 
    size = num.b.size();
Первая: берёшь размер большего вектора, а нужно - меньшего.

Добавлено через 13 минут
Воторая: param_save не инициализирована.
Третья: после emplace() твой iterator становится нерабочим (нужно опять задать ему значение).
1
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 14:07  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Первая: берёшь размер большего вектора, а нужно - меньшего.

Вoторая: param_save не инициализирована.
Третья: после emplace() твой iterator становится нерабочим (нужно опять задать ему значение).
Спасибо, но не помогло
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 14:09
Цитата Сообщение от Pashka Durov Посмотреть сообщение
но не помогло
А мне помогло: твой код отрабатывает до конца, без вылетов.
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 14:35  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
А мне помогло: твой код отрабатывает до конца, без вылетов.
Вы же в курсе, что магия вне Хогвартса запрещена?

P.S. что я сделал не так
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <vector>
#include <iostream>
 
#include <algorithm>
using namespace std;
class big_integer {
public:
    vector <int> b;
 
    big_integer(vector <int> b) {
        this->b = b;
    }
    vector <int> operator+(big_integer num) {
        vector <int> obj;
        long long size;
 
        auto iterator = obj.begin();
        if (this->b.size() > num.b.size()) size = num.b.size();
        else size = this->b.size();
        
        for (long long int i = size - 1; i >= 0; i--) {
            int param = this->b[i] + num.b[i];
            int param_save=param;
            if (param >= 10) {
                this->b[i - 1] += 1;
                
                param %= 10;
            }
         obj.emplace(iterator, param);
         iterator = obj.begin();
         if (i == 0 && param_save >= 10) {
             obj.emplace(iterator,1);
             iterator = obj.begin();
             break;
         }
        }
        return obj;
    }
};
int main() {
    big_integer a(vector <int> (999999));
    big_integer b(vector <int> (111111));
    big_integer z(a + b);
    
    for (vector<int>::iterator it = z.b.begin(); it != z.b.end(); ++it)
        cout << *it;
 
    cin.get();
    return 0;
}
Добавлено через 10 минут
UPD: у меня выводятся единица очень много нулей, настолько много, что не влезают в консоль, а при значениях 1 и 9 выводит 0
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 14:39
Цитата Сообщение от Pashka Durov Посмотреть сообщение
у меня выводятся единица очень много нулей, настолько много, что не влезают в консоль
Вылеты есть?
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
12.03.2018, 14:47  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Вылеты есть?
Нет
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.03.2018, 15:02
Цитата Сообщение от Pashka Durov Посмотреть сообщение
Нет
Одна проблема решена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2018, 15:02
Помогаю со студенческими работами здесь

Сортировка std::list ошибка компиляции algorithm 3868 error C2784
Добрый день, есть пользовательский класс, с вектором в качестве контейнера всё работает хорошо. А вот со списком вылетает ошибка: код:...

Ошибка в использовании библиотеки/ошибка в библиотеке
Изучаю Java, написал библиотеку для рисования некоторых геометрических фигур (точка, круг, квадрат, прямоугольник, эллипс, треугольник)....

WebStorm ошибка "algorithm negotiation fail"
При деплое через вебшторм выводится ошибка &quot;algorithm negotiation fail&quot; через WinSCP все работает в обоих случая указан SFTP ...

Ошибка в библиотеке
Добрый день! Помогите, пожалуйста. Создаю статическую библиотеку. Выводит следующую ошибку: &quot;Error 1 error LNK2019: unresolved...

Ошибка в библиотеке
Здравствуйте, я смотрю тут много кто кому помогает, я надеюсь мне помогут тоже. :) Я пока что новичок в C++, пишу на VC++ и вот такой у...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru