I use std::min_element on this Node object I created that has an index. I have a std::set container that holds 10 Nodes with different indices, and then I call std::min_element to get the Node with the lowest index number.
#include <iostream>
#include <string>
#include <algorithm>
#include <set>
using namespace std;
class Node
{
public:
    Node(int index) : _index(index) {}
    int index() const { return _index; }
    inline bool operator< (const Node &right) { return this->index() < right.index(); }
private:
    int _index;
};
int main()
{
    set<Node*> s;
    for(int i = 10; i > 0; i--) //10 , 9 , 8 ...
        s.insert(new Node(i));
    Node *lowest = *min_element(s.begin(), s.end());
    cout << lowest->index() << endl;
    //free
    for(set<Node*>::iterator iter = s.begin(); iter != s.end(); iter++)
        delete *iter;
    system("pause");
    return 0;
}
The output is 10 but sure be 1. What am I doing wrong?