у меня есть:
typedef QHash<QString,QString> CueTrack;
QVector<CueTrack> tracks;
Каждый QHash должен хранить 12 пар.
QVector должен содержать от 0 до 99 элементов, но я не могу знать, сколько их будет заранее, так как это зависит от данных, которые будут считываться во время выполнения из внешнего пользовательского файла. В среднем их ожидается около 10; в большинстве случаев от 5 до 15; редко более 20 и почти никогда не более 30 (но в некоторых очень редких случаях они могут достигать 99).
Я подумал о 2 сценариях:
a) без начального размера и изменения размера при необходимости
typedef QHash<QString,QString> CueTrack;
QVector<CueTrack> tracks;
...
tracks.resize(i+1);
tracks[i]["cmd"] = "val";
...
б) начальный размер
typedef QHash<QString,QString> CueTrack;
QVector<CueTrack> tracks(99);
Я сомневаюсь, и я хотел бы понять:
Какой предпочтительный сценарий, особенно с точки зрения производительности?
Есть ли другой возможный сценарий, который предпочтительнее?
Должен ли squeeze()
использоваться здесь? Как и когда?