transfer/copy 数据从 float* 到 vector<float> 的最快方法
Fastest way to transfer/copy data from float* to vector<float>
我有一个 float* 变量。我想将 float* 中的值复制到 vector 。你能建议在 C++ 上最快的方法吗?
这是我的基准代码
std::vector<float> CopyFloat2Vector(float* input, int size1) {
std::vector<float> vector_out;
for (int i = 0; i < size1; i++) {
vector_out.push_back(input[size1 + i]);
}
return vector_out;
}
我也试过memcopy,但是没用
float* input =....; //I have some value store in input with size of 1xsize1
std::vector<float> vector_out;
memcpy(vector_out.data(), input, size1 * sizeof(float));
std::vector
有一个构造函数。我假设标准库实现将尽可能多地利用优化:
std::vector<float> CopyFloat2Vector(float* input, int size1) {
return {input, input+size1};
}
我有一个 float* 变量。我想将 float* 中的值复制到 vector 。你能建议在 C++ 上最快的方法吗? 这是我的基准代码
std::vector<float> CopyFloat2Vector(float* input, int size1) {
std::vector<float> vector_out;
for (int i = 0; i < size1; i++) {
vector_out.push_back(input[size1 + i]);
}
return vector_out;
}
我也试过memcopy,但是没用
float* input =....; //I have some value store in input with size of 1xsize1
std::vector<float> vector_out;
memcpy(vector_out.data(), input, size1 * sizeof(float));
std::vector
有一个构造函数。我假设标准库实现将尽可能多地利用优化:
std::vector<float> CopyFloat2Vector(float* input, int size1) {
return {input, input+size1};
}