我尝试制作我的实时视频流应用程序。
现在,我正在尝试加快我的应用程序的速度。
我有这样的问题:
如何在此处加快“ for”循环:
boost::array<uchar, 30000> RECV_DATA; // array for receive all data from socket
size_t ImageSize = image_recver.read_some(
boost::asio::buffer(RECV_DATA), ignored_error); // complete image size
vector<uchar> Img (ImageSize); // the new array, will contains only image data
for (int i = 0; i < ImageSize; i++) {
Img[i] = RECV_DATA[i]; // Image array filling
}
答案 0 :(得分:1)
您可以使用std::vector
范围构造器来复制RECV_DATA
:
std::vector<uchar> Img(RECV_DATA.begin(), RECV_DATA.begin() + ImageSize);
或者更好的是,直接阅读std::vector<uchar>
:
std::vector<uchar> RECV_DATA(image_recver.available());
size_t imageSize = image_recver.read_some(boost::asio::buffer(RECV_DATA), ignored_error);
RECV_DATA.resize(imageSize);