#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>

using namespace std;

class class1
{
private:
  int id;
  double value;

public:
class1(int i, double v):id(i), value(v){ }
  int getId()const {return id;}
  double getValue() const {return value;}
};

class HasIdentifier:public unary_function<class1, bool>  
{  
public:
    HasIdentifier(int id) : m_id(id) { }  
    bool operator()(const class1& c)const  
    {  
        return (c.getId() == m_id);  
    }  
private:
    int m_id;  
};  


class class2
{
private:
    vector <class1> objects;
public:
  class2()
  {
    objects.push_back(class1(1, 100.0));
    objects.push_back(class1(2, 100.0));
    objects.push_back(class1(3, 100.0));
  }

  double GetValueOfId(int id)
  {
    vector<class1>::iterator itElem = find_if(objects.begin(), objects.end(), HasIdentifier(id));	
    return itElem->getValue();
  }
};

int main() {
	
	class2 c;

	int id = 2;
	
	cout<< id << " " << c.GetValueOfId(id);
	return 0;
}



// Then, to find it: