Быстрая вставка значений в карту с возрастающим целым числом в качестве ключа?

Эффективность map::insert(iterator position, const value& k)можно значительно улучшить, предоставив соответствующее значение в параметре position.

Если я использую целые числа в качестве ключа, и каждая вставка выполняется с числом, большим, чем все ранее вставленные ключи, могу ли я ускорить операцию ::insertпри задании :: end()итератор карты?

Что-то вроде:

myMap.insert( myMap.end() , make_pair( next_number , myValue ) );

где myMapимеет тип mapи next_number— большое целое число с каждым увеличением.

Редактировать:

Ответ на этот вопрос может отличаться в зависимости от того, являются ли данные, хранящиеся в карте , плотными или нет (см. обсуждение ниже). Итак, давайте зададим вопрос двумя способами: когда он плотный, когда он нет. Все еще любопытно. Возможно, на него ответит измерение.

6
задан ritter 4 June 2012 в 23:35
поделиться