如何将std :: copy输出与std :: distance一起用于C风格的数组类型

时间:2015-06-02 19:28:03

标签: c++

如何存储从std::copy返回的OutputIterator作为后来std::distance来电的参数?

我不能在C ++ 11中使用auto,我需要使用c风格的数组。

这就是我想要做的事情:

unsigned char data[MAX_DATA_LEN];
unsigned char x[MAX_X_LEN], y[MAX_Y_LEN];

// I cannot use auto here
auto out =
  std::copy ( x,
              x + runtime_x_len ,
              std::copy ( y,
                          y + runtime_y_len ,
                          data ) );

size_t data_size = std::distance ( data , out );

1 个答案:

答案 0 :(得分:4)

对于C风格的数组,'迭代器' return只是指向元素类型的指针。

因此,在您的情况下,std::copy()的返回值为unsigned char*