Array disperso en C ++

Necesito un contenedor de vectores, con indexación de enteros, pero donde se omiten algunos índices. Entonces, ¿cuál es la forma común de representar una matriz tan dispersa en C ++? Tengo la intuición de que std :: map se usa principalmente para tales propósitos. Pero es bastante lento para el contenedor donde normalmente no se agregan nuevos elementos. ¿Qué puedes proponer?

UPD: No muy "escaso". Tal vez alrededor del 5%. Elementos agregados en su mayoría durante el paso de inicialización (y no muy a menudo después). Pero el acceso es frecuente (obviamente no comenzaría este tema, si no fuera crucial).

Respuestas a la pregunta(3)

Su respuesta a la pregunta