关于#c++#的问题:为什么不是把s.insert(x)放在上面,而return放在下面

if (s.find(x) != s.end()) {
return true;
}
s.insert(x);
为什么不是把s.insert(x)放在上面,而return放在下面。

得先检查才能插入啊。find函数检查x是否已经在s中,如果在就不要插入了,不在则插入。如果insert放前面,那检查重复就没意义了,而且会将重复值插入s

首先要判断x是不是在最后一个元素,如果不是才插入,否则直接返回。具体为什么要看你的代码逻辑,你要干什么。