Um std :: map que rastreia a ordem de inserção?

Atualmente, tenho um std::map<std::string,int>que armazena um valor inteiro em um identificador de string exclusivo e procuro na string. Ele faz principalmente o que eu desejo, exceto que não acompanha o pedido de inserção. Então, quando eu itero o mapa para imprimir os valores, eles são...