#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;

class Object {
public:
	int x;
	float y;
};

class getx_iter : public vector<Object>::iterator
{
public:
	getx_iter(const vector<Object>::iterator &iter) : vector<Object>::iterator(iter) {}
	int operator*() { return (*this)->x; }
};

int main() {
	vector<Object> obj = { { 1,1.f },{ 2,2.f },{ 3,3.14f } };

	vector<int> all_x(getx_iter(obj.begin()), getx_iter(obj.end()));

	std::copy(all_x.begin(), all_x.end(), std::ostream_iterator<int>(std::cout, " "));
	return 0;
}