gpt4 book ai didi

C++ replace_if on vector with struct in STL

转载 作者:行者123 更新时间:2023-11-28 02:07:55 25 4
gpt4 key购买 nike

我一直在寻找一种方法来使用 std::replace_if 更新 vector 中的当前结构,而不是创建新对象。

例如

std::vector<setting> settings;

// ... add stuff to settings

setting newsetting;
std::string name = "something";

std::replace_if(settings.begin(), settings.end(), [&](setting const& v)
{
return v.name == name;
}, newsetting);

在这种情况下,我需要使用 newsetting,有没有什么方法可以引用我现有的 vector 并更新其中的值?我已经查过这个问题,但只在 boost 中找到了解决方案,我想在 STL 中严格执行此操作。

谢谢。

最佳答案

在我看来,您不需要比普通范围迭代更花哨的东西:

std::vector<setting> settings;

for (auto &one_setting:settings)
{
if (one_setting.name == name)
{
one_setting.a_method_that_changes_this_setting_somehow();
}
}

关于C++ replace_if on vector with struct in STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36783542/

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