Define == operator in order to use the find method : find « STL Algorithms Non modifying sequence operations « C++ Tutorial






#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;


class Employee {
  string name;
  unsigned number;

public:
  Employee() { name = ""; number = 0; }

  Employee(string n, unsigned num) {
    name = n;
    number = num;
  }
  string get_name() { return name; }
  unsigned get_number() { return number; }
};

void show(vector<Employee> vect) {
  vector<Employee>::iterator itr;

  for(itr=vect.begin(); itr != vect.end(); ++itr)
    cout << itr->get_number() << " " << itr->get_name() << endl;;

}

bool operator==(Employee a, Employee b){
  return a.get_number() == b.get_number();
}

int main()
{
  vector<Employee> employeeList;

  employeeList.push_back(Employee("A", 9));
  employeeList.push_back(Employee("B", 8));
  employeeList.push_back(Employee("C", 6));
  employeeList.push_back(Employee("D", 1));

  show(employeeList);

  vector<Employee>::iterator itr;
  itr = find(employeeList.begin(), employeeList.end(), Employee("", 2));
  cout << itr->get_name();

  return 0;
}








25.8.find
25.8.1.Use find to search an element in a container
25.8.2.find an element in a list
25.8.3.Find the maximum element in a range in a list
25.8.4.Locate first occurrence of a value in a vector
25.8.5.Using find with normal iteration
25.8.6.Demonstrating generic find algorithm with an array
25.8.7.Generic find algorithm: use find function to find an element in an array
25.8.8.Use find algorithm to find an element in a list
25.8.9.Use istream_iterator and find
25.8.10.Generic find algorithm with input iterators associated with io streams
25.8.11.Use assert to check the find method
25.8.12.Define == operator in order to use the find method
25.8.13.Find an Element and Its Position in a Vector
25.8.14.find a value in vector
25.8.15.Find empty string