6 / 6 / 1
Регистрация: 04.12.2009
Сообщений: 42
|
||||||
1 | ||||||
std::sort(iterator, iterator, method) подскажите как исправить16.07.2012, 23:22. Просмотров 2093. Ответов 13
Метки нет Все метки)
(
Уважаемые Знатоки!!! Вашему вниманию предоставляю код:
0
|
|
16.07.2012, 23:22 | |
Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator> Разыменование итератора std::list<vector<>>::iterator Странная ошибка invalid initialization of non-const reference of type 'std::vector<oneVec>::iterator& Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') |
|
бжни
2470 / 1680 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
16.07.2012, 23:35 | 2 | |||||
0
|
6 / 6 / 1
Регистрация: 04.12.2009
Сообщений: 42
|
|
16.07.2012, 23:44 [ТС] | 3 |
ну я набирал на форуме, а после уже решился скомпелить и норм вариант выложить, заране извеняюсь за предоставленные неудобства!!!
![]()
0
|
6 / 6 / 1
Регистрация: 04.12.2009
Сообщений: 42
|
|
17.07.2012, 00:14 [ТС] | 5 |
"пес его знает", я на каком-то форуме вычитал, что MyMeth() должен быть функцией не принадлежащей классу, но этот вариант тоже не помогает
0
|
6 / 6 / 1
Регистрация: 04.12.2009
Сообщений: 42
|
|
17.07.2012, 00:16 [ТС] | 7 |
0
|
бжни
2470 / 1680 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
17.07.2012, 00:25 | 8 |
потому что static member по сути является функцией, не-static member называются member-function и для них все по-другому работает (в смысле здесь уже нет обычных указателей на функцию, здесь member function pointer)
так как параметра два, то стандартными адаптерами не обойдешься - нужно заводить отдельный функтор итп для этой задачи статик вполне сойдет
2
|
6 / 6 / 1
Регистрация: 04.12.2009
Сообщений: 42
|
|
17.07.2012, 00:36 [ТС] | 9 |
со static работает
0
|
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
|
||||||
17.07.2012, 00:59 | 10 | |||||
0
|
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
17.07.2012, 02:08 | 11 | |||||
делать функцию сравнения двух интерфейсов методом какого-то класса - по мне это кривовато.
такая функция является утилитной и может пригодится в других местах, в которых не будет никаких классов С. Логичнее сделать такую функцию свободной, можно даже прямо в файле, в котором декларируется интерфейс Interface и использовать ее для сортировки:
Если и так не хочется, то далее такой метод лучше делать статическим, ведь внутри нет доступа ни к каким мемберам\методам класса С. Ну и когда такой доступ понадобится, то тут уже никуда не дется, придется делать метод нестатическим. По лябмдам на харбре есть хорошая статья: http://habrahabr.ru/post/66021/
0
|
бжни
2470 / 1680 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||||||||||||
17.07.2012, 13:42 | 12 | |||||||||||||||
вот вам универсальный интерфейс)
врооочем на c++11 можно сделать оригинальный вариант
0
|
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
17.07.2012, 17:33 | 13 |
в бусте мем_фн в большинстве случаев не обязательно втыкать. когда там смартпоинтер на объект в бинд отдают. может еще в каких-то. в новых плюсах наверно так же сделано. так что можно чуть проще:
std::sort(vec_.begin(), vec_.end(), std::bind(&C::MyMeth, this, _1, _2));
1
|
бжни
2470 / 1680 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
17.07.2012, 17:56 | 14 |
DU, ну это значит bind прокаченей чем я думал)
0
|
17.07.2012, 17:56 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
STL, vector. iterator. как работает?
Iterator в списке - как вывести на экран конкретный элемент списка? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |