Member access. Tricky business. Without testing, I think something like this ought to work.
Code:
#include <functional> // equal_to
#include <algorithm> // find_if
#include <string> // string
#include <utility> // pair
#include <vector> // vector
#include <boost/bind.hpp> // bind
// ...
typedef std::pair<std::string, int> si_pair;
typedef std::vector<si_pair> si_pair_vector;
si_pair_vector vec;
// ...
std::string needle = whatever();
si_pair_vector::iterator it = std::find_if(vec.begin(), vec.end(),
boost::bind(std::equal_to<std::string>(),
boost::bind(&si_pair::first, boost::_1), needle));