So today I learnt a new thing, which I think will be useful for beginners. I thought that both of the lines are equivalent.↵
However when I found out that the latter is more efficient in case of sets. ↵
↵
set<int> set1;↵
↵
auto ite = upper_bound(set1.begin(), set1.end(), val); // O(n) // O(log n) in case of random access container.↵
auto ite = set1.upper_bound(val);//O(log n) // binary search, uses set property↵
↵
Hope this helps; return 0;↵
↵
↵
However when I found out that the latter is more efficient in case of sets. ↵
↵
set<int> set1;↵
↵
auto ite = upper_bound(set1.begin(), set1.end(), val); // O(n) // O(log n) in case of random access container.↵
auto ite = set1.upper_bound(val);//O(log n) // binary search, uses set property↵
↵
Hope this helps; return 0;↵
↵
↵