Не оптимальное, но работающее решение, которое вам уже предлагали, основанное на преобразовании в формат YYYYMMDD:
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
int main(void)
{
std::vector<std::string> array_data{ "13.11.1999", "09.10.1997", "22.05.1995" };
auto as_yyyymmdd = [](const std::string& src){
return src.substr(6,4) + src.substr(3,2) + src.substr(0,2);
};
auto min_date_it = std::min_element(array_data.begin(), array_data.end(),
[as_yyyymmdd](const std::string& a, const std::string& b){
return as_yyyymmdd(a) < as_yyyymmdd(b);
});
std::string min_date = *min_date_it;
std::cout << min_date << std::endl;
return 0;
}