首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向量删除块

向量删除块
EN

Stack Overflow用户
提问于 2012-11-15 04:12:25
回答 1查看 79关注 0票数 0

我有一个检查向量值的函数,然后删除其中没有足够值的块。

代码语言:javascript
运行
复制
vector<iniMatrix> Audio::filter(vector<iniMatrix>&blocks, double sumThres, double ZeroThres)
{
double totalSum = this->width * sumThres;
double totalZero = this->width * ZeroThres;

int currZero = 0;
int currsum = 0;

int prevsign = 0;

for(auto int i=0; (i < 96); i++)
{
    int currsign = zerocross(blocks[i]);
    double currSumOfBlocks = this->energy(blocks[i]);

    if(!totalSum > currSumOfBlocks || totalZero > currsign)
    {
        blocks[i].erase(blocks[i].begin()+blocks.size());
    }
}

return blocks;
}

它一直工作到擦除块的时候,它不会删除它们,因为当我输出blocks.size()的时候,它仍然和以前一样,它应该更小。

有人知道为什么会发生这种事吗?

EN

回答 1

Stack Overflow用户

发布于 2012-11-15 04:21:19

如果你想删除第i个元素,你应该这样做:

代码语言:javascript
运行
复制
blocks.erase(blocks.begin()+i);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13386559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档