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};
}