Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
кодонафт
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 29
1

Ошибка в sort и функции

24.04.2016, 00:35. Просмотров 289. Ответов 5
Метки нет (Все метки)

есть код
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
int CkursDlg::vp(Tochka a, Tochka b)
{
    return a.GetX()*b.GetY() - a.GetY()*b.GetX();
}
 
int CkursDlg::dist(Tochka p1, Tochka p2)
{
    return (p2 - p1).GetX() * (p2 - p1).GetX() + (p2 - p1).GetY()*(p2 - p1).GetY();
}
 
bool CkursDlg::l(Tochka p1, Tochka p2)
{
    return vp(p1 - p0, p2 - p0) > 0 || (vp(p1 - p0, p2 - p0) == 0 && dist(p0, p2) < dist(p0, p1));
}
 
int CkursDlg::leftpoint(vector<Tochka>& ob)
{
    int min_ind = 0;
    for (int i = 0; i < 12; i++) {
        if (p[i].GetX() < p[min_ind].GetX())
            min_ind = i;
        else
            if (p[i].GetX() == p[min_ind].GetX()) // 
                if (p[i].GetY() < p[min_ind].GetY()) // саму нижню 
                    min_ind = i;
    }
    p0 = p[min_ind];
    sort(p, p + 12, l); // відносно кута і першої
 
    for (int i = 0; i < 12; i++) {
        while (ob.size() >= 2 && vp(ob[ob.size() - 1] - ob[ob.size() - 2], p[i] - ob[ob.size() - 1]) <= 0)
            ob.pop_back();
        ob.push_back(p[i]);
    }
    //  
    if (ob.size() == 12) {
        //cout << ob.size() << endl; // кколво точок
        for (int i = ob.size() - 1; i >= 0; --i) {
            printf("%d %d\n", ob[i].GetX(), ob[i].GetY());
            //cout << endl;
            //  cout << p[i].x <<"
и ошибки
Серьезность Код Описание Проект Файл Строка
Ошибка C3867 "CkursDlg::l": нестандартный синтаксис; используйте "&", чтобы создать указатель на член kurs e:\kurs\kurs\kursdlg.cpp 243
Ошибка C2780 void std::sort(_RanIt,_RanIt): требует аргументов: 2, имеется: 3 kurs e:\kurs\kurs\kursdlg.cpp 243
Кто что думает ?? как пофиксить ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 00:35
Ответы с готовыми решениями:

Ошибка: отсутствуют экземпляры перегруженной функции “sort”
В 6.3 пишет «отсутствуют экземпляры перегруженная функция “sort” #include &lt;iostream&gt; #include...

Sort(), третий параметр: как sort() выбирает аргументы из переданной последовательности для переданной функции?
Вот sotr() 2 параметра - итераторы, а третий функцию. Допустим, моя функция сортирует список по...

Использование функции sort
Вобщем нужна простенькая прога что бы сортировала n. Но нада использавать библиотеку #include...

Использование функции sort
Часто видел как в алгоритме std::sort(v.begin(),v.end(),Less); // импользуют самонаписанную функцию...

Функция sort и ошибка С2228
Доброго времени суток, пытаюсь постичь функцию sort на примере сортировки классов, но все время...

5
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
24.04.2016, 13:07 2
Что такое l? Впиши туда лямбда-выражение.
0
кодонафт
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 29
24.04.2016, 13:15  [ТС] 3
когда это делаю выдаёт ошибку с2064 !!!
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
24.04.2016, 14:07 4
Что делаешь? Показывай.
0
кодонафт
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 29
24.04.2016, 19:12  [ТС] 5
sort(p, p + 12, &CkursDlg::l);
Серьезность Код Описание Проект Файл Строка
Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов kurs c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm 3122
Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов kurs c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm 3118
Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов kurs c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm 3133
Ошибка C2064 результатом вычисления фрагмента не является функция, принимающая 2 аргументов kurs c:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm 3140
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
24.04.2016, 20:47 6
C++
1
sort(p, p + 12, [&p0](const Tochka &p1, const Tochka &p2){ return vp(p1 - p0, p2 - p0) > 0 || (vp(p1 - p0, p2 - p0) == 0 && dist(p0, p2) < dist(p0, p1)); }
0
24.04.2016, 20:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2016, 20:47

Как правильно записать вызов функции sort()?
как правильно записать вызов функции sort()? #include &lt;iostream&gt; #include&lt;string&gt; using...

Ошибка кучи в алгоритме STL sort()
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;ctime&gt; #include &lt;stdexcept&gt;...

Как сортировать массив при помощи функции sort?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; int _tmain(int argc, _TCHAR* argv) { int mas ;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru