gpt4 book ai didi

c++ - 通过转换将 C++ vector 复制到另一个 vector 的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:41 40 4
gpt4 key购买 nike

在应对时使用转换将一个 vector 复制到另一个 vector 的最佳方法是什么?我有以下代码:

vector<Type2> function1(const vector<Type1>& type1Vector) 
{
vector<Type2> type2Vector(type1Vector.size());
for (vector<Type1>::const_iterator it = type1Vector.begin(); it < type1Vector.end(); it++) {
type2Vector.push_back(convertion(*it));
}

return type2Vector;
}

有没有更好的办法?

最佳答案

您的代码实际上包含一个错误,因为 type2Vector 的大小是 type1Vector 的两倍。您实际上将其初始化为 type1Vector 的大小,然后在其上添加转换后的元素。

您可以轻松地使用标准算法来实现您想要的:

#include <algorithm>
#include <iterator>

vector<Type2> function1(const vector<Type1>& type1Vector)
{
vector<Type2> type2Vector;
type2Vector.reserve(type1Vector.size());
std::transform(type1Vector.begin(), type1Vector.end(), std::back_inserter(type2Vector), convertion);
return type2Vector;
}

关于c++ - 通过转换将 C++ vector 复制到另一个 vector 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33433206/

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