我正在开发一个性能至关重要的程序.我在那里使用了QMultiMap一个由Qt框架提供的类,类似于std::map.
QMultiMap<int, SomeClass> heavilyUsedMap;
void prepareMap()
{
...
heavilyUsedMap.reserve(nEntries); // There is no reserve.
// fill heavilyUsedMap with a known number of entries.
}
void useMap()
{
// computations
heavilyUsedMap.clear();
}
Run Code Online (Sandbox Code Playgroud)
我经常使用prepareMap().当我想要优化时,分配内存是有意义的heavilyUsedMap.
事实上,容器:QVector<T>,QHash<Key, T>,QSet<T>,QString,并且QByteArray都提供了这种可能性,但QMap<Key, T>并QMultiMap<Key, T>没有.
为什么会这样,我怎么能预分配内存的QMap<Key, T>和QMultiMap<Key, T>?
| 归档时间: |
|
| 查看次数: |
2633 次 |
| 最近记录: |