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

Ошибка C2064

07.03.2017, 14:37. Показов 5023. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите исправить ошибку :результатом вычисления фрагмента не является функция, принимающая 2 аргументов

Кликните здесь для просмотра всего текста

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
#pragma once
#include <functional>
 
class isN :public std::binary_function<int, int, bool>
{
public:
    bool operator ()(int a, int b) const{
           return (a % b) == 0;
        }
};
 
 
#include <iostream>
#include <fstream>
#include <deque>
#include <iterator>
#include <functional>
#include <algorithm>
#include "isN.h"
 
using namespace std;
 
int main() {
    ifstream fin("in.txt");
    ofstream fout("out.txt");
    int n, N;
    deque<int> deq;
    if (fin.is_open()) {
        while (fin >> n) {
            deq.push_back(n);
        }
        cin >> N;
 
        deq.erase(unique(deq.begin(), deq.end(), bind2nd(isN(), N)), deq.end()); // здесь 
        copy(deq.begin(), deq.end(), ostream_iterator<int>(fout, "\n"));
    }
    else
        fout << "Error";
    fin.close();
    fout.close();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2017, 14:37
Ответы с готовыми решениями:

Ошибка C2064
Как решить ошибку c2064? Error c2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов Натрочках...

Ошибка C2064
Компилятор выдает вышеназванную ошибку, но не могу понять, в каком месте находится эта проблема и как это исправить. Вот код: #include...

Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов
#include &quot;stdafx.h&quot; #include &lt;algorithm&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double...

11
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.03.2017, 14:46
Нужно именно в таком виде реализовать? Лямбда-выражение почему не используешь?
0
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 13
07.03.2017, 14:50  [ТС]
Да , нужно использовать функциональный класс
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
07.03.2017, 16:06
Цитата Сообщение от ilya312 Посмотреть сообщение
Помогите исправить ошибку :результатом вычисления фрагмента не является функция, принимающая 2 аргументов
скобки не правильно расставлены.
любители писать через жёпь в одну строку должны страдать.
0
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 13
07.03.2017, 17:15  [ТС]
А что в скобочках не так?
auto it = unique(deq.begin(), deq.end(), bind2nd(isN(), N));
deq.erase(it , deq.end());

так тоже не работает
0
187 / 54 / 19
Регистрация: 23.12.2016
Сообщений: 167
07.03.2017, 18:40
Я насчитал 7 открывающих скобок и только 6 закрывающих.

Добавлено через 6 минут
А не, всех по 7 штук вроде, сперва неправильно посчитал.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,218
07.03.2017, 18:46
Цитата Сообщение от ilya312 Посмотреть сообщение
результатом вычисления фрагмента не является функция, принимающая 2 аргументов
Ну так, как вам ясно сказал компилятор, std::unique требует бинарный функтор сравнения (т.е. принимающий 2 аргумента). Вы взяли ваш функтор isN, принимающий 2 аргумента, и применили к нему std::bind2nd, получив в результате унарный функтор (т.е. принимающий 1 аргумент).

Далее вы пихаете этот унарный функтор в std::unique. Ничего не компилируется, разумеется. Что вы хотели этим добиться - не ясно. Это уже у вас надо спрашивать. В чем тут вообще была идея? Почему вы пытаетесь передавать унарный функтор в std::unique?
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
07.03.2017, 19:03
Цитата Сообщение от ilya312 Посмотреть сообщение
так тоже не работает
а с фига ему работать,
если юник просит два моральных итератора,
а не ту хрень,
что вы в него напихали.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,218
07.03.2017, 19:05
P.S. Отдельно стоит заметить, что std::binary_function и std::bind2nd - официально устаревшие (deprecated) части стандартной библиотеки. std::binary_function больше не нужен, а вместо std::bind2nd теперь есть std::bind и/или лямбды.
1
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 13
07.03.2017, 19:46  [ТС]
Мне нужно убрать из дека все числа, кроме первого , которые делятся на N
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,218
07.03.2017, 19:57
Цитата Сообщение от ilya312 Посмотреть сообщение
Мне нужно убрать из дека все числа, кроме первого , которые делятся на N
Тогда std::unique вам тут никак не поможет. Вам нужен std::find_if и std::remove_if.
1
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 13
07.03.2017, 20:00  [ТС]
Всем спасибо!)
Я сделал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2017, 20:00
Помогаю со студенческими работами здесь

Ошибка 1 error C2064: результатом вычисления фрагмента не является функция, принимающая 0 аргументов
Помогите пожалуйста разобраться не пойму почему выдает 2 ошибки? Ошибка 1 error C2064: результатом вычисления фрагмента не является...

Ошибка "Error C2064" в файле xutility.h на VS2010
Не могу разобраться с ошибкой :error C2064: результатом вычисления фрагмента не является функция, принимающая 2 аргументов. проблема...

Error C2064
как исправить ошибку. пытаюсь использовать указатель на функцию как параметр функции. однако выдаёт ошибки#include &lt;iostream&gt; using...

error C2064: выдает ошибку
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include&lt;clocale&gt; using namespace std; // поиск мах int max (int...

error C2064: результатом вычисления фрагмента...
error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов //процедуры и функции 11. Найти количество...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru