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

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

11.03.2018, 23:25. Показов 4174. Ответов 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
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,030
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru