"Internally, the elements in the map are sorted from lower to higher key value"
So you need to define the Compare class for this to work, which takes two key values and returns a bool indicating which is greater.
If the concept of one T_KeyInfo being greater than another doesn't make sense (for example, which of (0,1) and (1,0) is greater?), then most likely you'd be better off using an unordered list.
Probably what's happening is that the search ends when the default "less than" operator finds a key that is greater than the one specified, and that "less than" is not doing what you expect, which could be that it is considering a T_KeyInfo to have the numeric value Key1 * 2^(8*sizeof(int)) + Key2, which would mean the keys (0,0), (0,1), (0,1000), (1,0) are in order, because (1,0)>(0,1000).