使用向量迭代器时出现运行时错误

发布于 2024-12-05 15:26:56 字数 510 浏览 1 评论 0 原文

我在使用以下代码时遇到问题:

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 并且ensemble是一个vector>。我有以下内容,

错误:向量插入迭代器超出范围。

我有什么错?

I'm having a problem with the following code:

for(int j = 0; j < ensembleTemp.size(); j++)
        {
            ensemble[ensembleTemp[j]].clear();
            ensemble[ensembleTemp[j]].insert(ensemble[j].begin(),
                                     ensembleTemp.begin(), ensembleTemp.end());
        }   

ensembleTemp is a vector<int>
and ensemble is a vector<vector<int>>. I have the following,

error: vector insert iterator outside range.

What's my mistake?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

书信已泛黄 2024-12-12 15:26:56

您对插入的第一个参数使用了错误的索引,它(大概)应该是要

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]。

You're using the wrong index for the first parameter of insert, it (presumably) should be

for(int j = 0; j < ensembleTemp.size(); j++)
{
    ensemble[ensembleTemp[j]].clear();
    ensemble[ensembleTemp[j]].insert(
        ensemble[ensembleTemp[j]].begin(), 
        ensembleTemp.begin(), 
        ensembleTemp.end());
}

The first parameter to insert should be an iterator for the vector being inserted into.

In addition ensemble.size() must be greater than ensembleTemp[j] for all j.

南烟 2024-12-12 15:26:56

您确定 ensemble.size() 大于 'j' 吗?并且大于 ensembleTemp[j]?

Are you sure ensemble.size() is greater than 'j'? and greater than ensembleTemp[j]?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文