This is a very simple problem. In this trying to find a given time from ranges of times. So, I have a collection which stores different time ranges (including overlapping time ranges). The job is to find or search if a time provided by user exists in time ranges collection. Example: Let's assume I have following collections of time ranges: 1. 07:00 - 09:00 2. 13:45 - 15:15 3. 16:25 - 18:10 4. 08:30 - 10:00 Now, need to find if time 09:30 is present in that collection or not. If it finds it shall print true, otherwise false. Similarly it can be use to check other times too. Solution: To store time ranges, what I did is converted start and end time to decimal numbers respectively and stored them in STL's set (multiset) used to address overlapping ranges. As we know that set data structure in STL is a tree (Red Black Tree / Balanced Binary tree). Time Complexity: 1. set::insert - If N elements are inserted, Nlog(size+N). Implementations may optimize if the range is already sor