gpt4 book ai didi

c++ - 删除 vector 中的所有元素,直到第一个非零元素 C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:22 26 4
gpt4 key购买 nike

我有一个 vector ,它将在其开头存储可变数量的零元素。这些需要删除。

我试过:

while(v.at(0) == 0)
{
v.erase(v.begin());
}

但这会抛出一个 std::out_of_range 错误。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用 std::find_if找到第一个非零值,然后是 erase这些元素:

auto first_non_zero = std::find_if(begin(v), end(v), [](int n){ return n != 0; });
v.erase(begin(v), first_non_zero);

( live demo )

关于c++ - 删除 vector 中的所有元素,直到第一个非零元素 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51821328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com