我有一个向量 vec,每次在其中放入元素时都需要对其进行排序
所以当我将第一个 Upgrade* 放在向量中时,我没有问题
但是当我将第二个 Upgrade* 放入其中并调用排序例程时,我遇到了运行时错误
这就是我每次插入时放置元素并调用排序的方式
std::vector<Upgrade*> stack = getStack();
stack.push_back(element);
std::sort(stack.begin(), stack.end(), CostBenefitUpgradeOrder());
这是我的比较器
struct CostBenefitUpgradeOrder {
bool operator ()(const Upgrade * u1, const Upgrade * u2) const {
const UpgradeType upgradeType1 = u1->getUpgradeType();
const UpgradeType upgradeType2 = u2->getUpgradeType();
int price1 = PriceUtil::getPrice(upgradeType1);
int price2 = PriceUtil::getPrice(upgradeType2);
if (price2 < price1)
return true;
else
return false;
}
}
这就是错误
我注意到它只发生在我在调试模式下执行程序时!