最近项目里碰到一个奇怪的问题。在某些特定的服务器上,执行某段代码,会突然Crash,代码没有动过,查了半天。原来是std::sort搞出的问题,因为之前返回的元素从来没有相等的情况,所以没有出现过Crash,STD的sort,如果出现两个相等的元素返回true,会导致越界行为
std::vectorlist = {2,1,1,3,}; std::sort(list.begin(), list.end(), [](int a,int b){ if (a == b){// 这地方 return true; } return a > b; });