#include <vector>

struct InputField
{
	bool _selected;
	
	InputField(bool s) : _selected(s) {}
	
	bool getSelected() { return _selected; }
	void setSelected(bool s) { _selected = s; }
};

struct InputFieldController{
        std::vector<InputField> _inputfields;
        std::vector<InputField>::iterator _selected;
        
        void push_back(InputField push)
        {
            _inputfields.push_back(push);
            if(push.getSelected()){
                if(_inputfields.size() == 1){
                    _selected = _inputfields.begin();
                    return;
                }
                _selected->setSelected(false);
                _selected = _inputfields.end()-1;
            }
        }
};

int main()
{
	InputFieldController foo;
	foo.push_back(InputField{false});
	foo.push_back(InputField{true});
}