有没有大佬解释一下这个代码什么意思
int pre(int x) { set<pair<int,int>>::iterator it = s.lower_bound(make_pair(dfn[x], x)); if (it == s.begin()) it = s.end(); return (--it)->second; }
好像是求一个序列里面一个数的前继,能解释一下他的语法吗