Привет!
Класс:
class A
{
int b;
vector<int> vect;
bool pred(int& a){return a>b};
void SomeFunc(int c);
}
void A::SomeFunc(int c)
{
b=c;
// Как сделать так чтобы вызывалась функция A::pred ???
stable_partition(vect.begin(), vect.end(),pred);
};
Функция A::pred в зависимости от A::b возвращает различные значения, поэтому она находится внутри класса.
Как ее использовать в stable_partition???
Спасибо!
machine1 wrote:
[]
> Функция A::pred в зависимости от A::b возвращает различные значения, поэтому она находится внутри класса.
> Как ее использовать в stable_partition???
Здесь тебе это не нужно. Достаточно стандартного предиката greater<int>.
class A
{
vector<int> vect;
void SomeFunc(int c);
};
void A::SomeFunc(int c)
{
stable_partition(vect.begin(), vect.end(), bind2nd(greater<int>(), c));
};
--
Maxim Egorushkin
MetaCommunications Engineering
http://www.meta-comm.com/engineering/Posted via RSDN NNTP Server 1.8 beta
Здравствуйте, machine1, Вы писали:
M>Функция A::pred в зависимости от A::b возвращает различные значения, поэтому она находится внутри класса.
M>Как ее использовать в stable_partition???
Вроде так:
stable_partition( vect.begin(), vect.end(), bind1st(mem_fun(A::pred), this) );
(не могу проверить -- нет под рукой нормального компилятора)
machine1 wrote:
> А чего делает bind2nd?
Нет ничего лучше, чем хорошая дока:
http://www.sgi.com/tech/stl/binder1st.html
http://www.sgi.com/tech/stl/binder2nd.html
Когда разберешься с std байндерами, выкинь их и пользуй boost::bind:
http://www.boost.org/libs/bind/bind.html
--
Maxim Egorushkin
MetaCommunications Engineering
http://www.meta-comm.com/engineering/Posted via RSDN NNTP Server 1.8 beta
Спасибо за линки и за совет