Range-based for loop
Здравейте!
В няколко задачи в различни курсове по С++ срещам проблем с динамичнa промяна на границата на range-based цикъл. Въпросът е как да овърлоуднем end() метода на контейнера вътре в цикъла? Задачите са от този тип:
template<typename T>
class ContainerClass
{
public:
typename std::vector<T>::iterator begin()
{
return _v.begin();
}
typename std::vector<T>::iterator end()
{
return _v.end(); //не става така
}
void add(T a)
{
_v.push_back(a);
}
private:
std::vector<T> _v;
};
int main()
{
ContainerClass<int> c;
c.add(1);
c.add(2);
for (auto e : c)
{
std::cout << e << std::endl;
if(input())
c.add(3);
}
return 0;
}