我希望
auto myPairs = make_unique_for_overwrite<pair<uint64_t, void*>>[]>(arraySize);
Run Code Online (Sandbox Code Playgroud)
会给我的pairs未初始化的内存。无论如何,我稍后会覆盖它们,并且(不必要的)初始化目前对我的算法的 600 毫秒整体运行时间中的 120 毫秒负责。
避免这种初始化的最惯用的方法是什么?
根据cppreference,std::pair总是值初始化(又名零)其元素的默认构造函数。
解决方案是摆脱pair. 您可以将其替换为具有两个成员的结构。
我知道我仍然可以分配......然后
reinterpret_cast
尝试使用reinterpret_cast这种结构std::pair会导致未定义的行为。
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |