However, I guess there is an advantage using pair. Is it more performant or something else?
I doubt it, an instantiated std::pair is just a struct, after all. std::pair comes with operator< defined, though. But that shouldn't be too hard to do yourself for a struct with only two members.
So I usually do as you reasoned: a struct with dedicated member names is easier to read than first and second.