C++ Stl vector functions :     vector<int> v;
    v.push_back(5);
    v.push_back(7);
    v.push_back(3);
    v.push_back(6);
    v.push_back(5);
    
    v.push_back(4);
    
    v.push_back(7);
    v.push_back(8);
    v.push_back(5);
    v.push_back(6);


    vector<int> :: iterator low,high;
    low = lower_bound( v.begin(), v.end(), 7);
    high = upper_bound( v.begin(), v.end(), 7);
    cout << low - v.begin() << " " << high - v.begin();


So when I try to compile this code using the clang++ compiler on my Mac , it returns the output as 
10 10
which implies as v.end() for both high and low although low should be = 1 and high =7 (the number 8).What am I doing wrong?