我遇到以下代码问题:
for(int j = 0; j < ensembleTemp.size(); j++)
{
ensemble[ensembleTemp[j]].clear();
ensemble[ensembleTemp[j]].insert(ensemble[j].begin(),
ensembleTemp.begin(), ensembleTemp.end());
}
ensembleTemp是vector<int>
和整体是vector<vector<int>>
。我有以下内容,
错误:向量插入迭代器到范围外。
我的错误是什么?
答案 0 :(得分:3)
你对insert的第一个参数使用了错误的索引,它(推测)应该是
for(int j = 0; j < ensembleTemp.size(); j++)
{
ensemble[ensembleTemp[j]].clear();
ensemble[ensembleTemp[j]].insert(
ensemble[ensembleTemp[j]].begin(),
ensembleTemp.begin(),
ensembleTemp.end());
}
要插入的第一个参数应该是插入的向量的迭代器。
此外,对于所有j,ensemble.size()必须大于ensembleTemp [j]。
答案 1 :(得分:0)
你确定ensemble.size()大于'j'吗?并且大于ensembleTemp [j]?