for (int i = 0; i < historyTableList.size() - 1; i++)
{
historyList2.push_back(historyTableList[i]);
} historyList.size()=0时,为什么会异常
- historyTableList.size() 返回的是 size_t 类型(无符号整数)
- 当 size() = 0 时,size() - 1 会下溢变成非常大的正数(因为无符号整数不能为负)
- 循环条件 i < (非常大的正数) 会成立,导致循环执行
- 但在循环体内访问 historyTableList[i] 时,i=0 已经越界