我想静态初始化巨大的(兆字节)uint8_t数组.
一开始我试过这个:
constexpr uint8_t arr[HUGE_SIZE] = { 0, 255, ... };
不幸的是,上面的编译时间很长(没有优化 - 大约30秒,优化 - 小时以上).
我发现如果我们使用c样式字符串初始化,编译时间可以减少到可以忽略不计(在优化关闭和开启情况下):
constexpr uint8_t arr[HUGE_SIZE + 1] = "\x00\xFF\x...";
这是C++中的好方法吗?我应该使用一些字符串文字来使上述赋值的两面类型相等吗?
我正在尝试使用此命令从命令行使用gradle创建android项目:
android create project \
--target android-23 \
--name HelloWorld \
--path HelloWorld/ \
--activity MainActivity \
--package com.example.helloworld \
--gradle \
--gradle-version 1.3.0
Run Code Online (Sandbox Code Playgroud)
项目结构已成功生成,但当我尝试运行gradlew assembleDebug时,我得到:
A problem occurred evaluating root project 'HelloWorld'.
> Could not create plugin of type 'AppPlugin'.
Run Code Online (Sandbox Code Playgroud)
我正在浏览谷歌半天,最后我发现在android创建项目中使用gradle(可能)已弃用:
https://code.google.com/p/android/issues/detail?id=160032
是否有任何支持的方法(干净,没有黑客)来实现目标(在命令行中)?
我正在寻找最快的方式:
在Qt.这是我的解决方案:
// ------------------------------------------------ ------------------------------------
QImage image1 (width, height, QImage::Format_ARGB32);
QImage image2 (width, height, QImage::Format_ARGB32);
QImage image3 (width, height, QImage::Format_ARGB32);
Run Code Online (Sandbox Code Playgroud)
/*一些带图像的操作*/
QPainter displayPainter (this);
displayPainter.drawImage (topLeft, image1, area);
displayPainter.drawImage (topLeft, image2, area);
displayPainter.drawImage (topLeft, image3, area);
Run Code Online (Sandbox Code Playgroud)
// ------------------------------------------------ ------------------------------------
如果有更好的,更快的?我发现信息,QPixmap更适合在屏幕上显示它,但是这个:
displayPainter.drawPixmap (.)
比这慢:
displayPainter.drawImage (.).
------------------------------------------编辑------- -----------------------------------
我想补充一点,我看到了这个问题: 在Qt中显示解码视频帧的最有效方法是什么?
但在我的情况下使用QGLWidget有点复杂.我正在使用必需品,这在QGLWidget中使用paintEvent并不稳定.用paintGL没问题.问候,