c++ - 快速复制数组到数组
问题描述
我尝试制作我的实时视频流应用程序。
现在,我尝试加快我的申请速度。
我有这样的问题:
如何在此处加速“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
}
解决方案
您可以使用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);
推荐阅读
- spring-mvc - Spring RestTemplate 不允许持久的 https 连接
- node.js - 如何在 Circuit JavaScript SDK 中获取向机器人发送消息的用户的电子邮件?
- python - Python使用当前模块中定义的变量从不同模块调用函数
- kubernetes - 无法在 ingress-nginx-controller 上配置 UDP
- java - 如果 json 数组为空,则 Gson getAsString() 失败
- r - 应用 rbinom 时在 data.table .SD 中应用的列特定参数
- android - 检查两个点的 ArrayList 是否对称
- angular - 订阅 angular observable 是未定义的
- mysql - 在MySQL中按首字母选择最大数量组
- javascript - 如何在 webpack 设置中使用 CodeMirror 运行模式独立版本