Мне нужно создать итератор только для элемента-члена, который будет перебирать контейнер.
Например:
class A { int x; char y; };
std::vector<A> mycoll = {{10,'a'}, {20,'b'}, {30,'c'} };
Здесь mycoll.begin()
даст мне итератор типа A
Но мне требуется написать итератор для итерации по конкретному члену (скажем, x A.x
), и пусть int_ite
будет итератором для этого целого числа.
Тогда мне нужно
*(int_ite.begin() )
чтобы вернуть 10
*(++int_ite.begin() )
чтобы вернуть 20
и т. Д.
также .end()
даст конец итерации.
Есть ли какой-нибудь элегантный способ создать такой итератор?
Мне нужно, чтобы передать это std::lower_bound()