gpt4 book ai didi

c++ - 在 C++ 中将一个 vector 转换为另一个具有不同大小的 vector

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:06 24 4
gpt4 key购买 nike

有谁知道我是否可以使用 STL 中的东西来代替这段代码:

std::vector<string> v = {"1", "2", "3", "4", "5", "6"};
std::vector<int> result;
for (auto i = 0; i < v.size(); i += 2)
{
int transformed = std::stoi(v[i]);
transformed += std::stoi(v[i+1]);
result.push_back(transformed);
}

result 最后是 {3, 7, 11}

我能以某种方式调整 std::transform 吗?

最佳答案

下面的方法使用了 boost::iranges,并且有效,但老实说,我认为它很丑。

auto indices=boost::irange(0,int(v.size()/2));
std::for_each(indices.begin(),indices.end(),[&](unsigned index){result.push_back(stoi(v[2*index])+stoi(v[2*index+1]));});

实例: http://coliru.stacked-crooked.com/a/dfd2775e996d96c6

关于c++ - 在 C++ 中将一个 vector 转换为另一个具有不同大小的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634541/

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