Je cherche une structure de données qui contient des données afin qu'elles soient insérées (comme un vecteur) qui doit contenir des millions de longs non signés. La clé est qu'elle doit avoir une recherche meilleure que O (logn), car elle sera recherchée par rapport à un vecteur similaire de la même taille. Y a-t-il quelque chose qui existe comme ça? Si j'insère 10, 20, 30 et ensuite itérer sur l'ensemble, je dois garantir l'ordre de 10, 20, 30. Mes données sont une chaîne que j'ai convertie en un long non signé pour réduire l'utilisation de la mémoire, c'est-à-dire décodable inverse. Comme les gens me le demandent, je compare deux vecteurs les uns par rapport aux autres (tous les deux de très grande taille) pour obtenir la différence.Alternative aux vecteurs pour les grands ensembles de données? C++
Petit exemple:
vector 1: 10 20 30 40 50 60
vector 2: 11 24 30 40 55 70 90
result: 30 40
unordered_map http://www.cplusplus.com/reference/unordered_map/unordered_map/ – aaronman
Pourquoi le vecteur n'est-il pas suffisant? Quand vous dites "il sera recherché contre un vecteur similaire de la même taille", qu'est-ce que cela signifie? –
L'alternative évidente qui répond à vos besoins est 'std :: deque', bien que vous n'ayez pas dit ce qui ne va pas avec' std :: vector' pour vos besoins, il est impossible de deviner si 'std :: deque' sera meilleur , pire, ou similaire. 'std :: list' contiendra également des éléments en séquence, mais les chances qu'il s'agisse d'une amélioration sont assez éloignées. –