Dans le code ci-dessous, hash_map trie ou insère automatiquement les éléments dans un ordre trié. Des idées pourquoi ça fait ça ?? Suggestions S'il vous plait ?? Ce n'est pas un problème de devoirs, en essayant de résoudre une question d'entrevue publiée sur glassdoor dot com.Est-ce que hash_map trie automatiquement [C++]?
#include <iostream>
#include <vector>
#include <ext/hash_map>
#include <map>
#include <string.h>
#include <sstream>
using namespace __gnu_cxx;
using namespace std;
struct eqstr
{
bool operator()(int i, int j) const
{
return i==j;
}
};
typedef hash_map<int, int, hash<int>, eqstr> myHash;
int main()
{
myHash array;
int inputArr[20] = {1,43,4,5,6,17,12,163,15,16,7,18,19,20,122,124,125,126,128,100};
for(int i=0;i<20;i++){
array[inputArr[i]] = inputArr[i]; //save value
}
myHash::iterator it = array.begin();
int data;
for (; it != array.end(); ++it) {
data = it->first;
cout << ":: " << data;
}
}
//!Output ::: 1:: 4:: 5:: 6:: 7:: 12:: 15:: 16:: 17:: 18:: 19:: 20:: 43:: 100:: 122:: 124:: 125:: 126:: 128:: 163
Une raison pour laquelle 'operator()' n'est pas implémenté comme 'return i == j;'? – Arun
'hash_map' n'est pas standard C++. L'équivalent C++ 0x est 'unordered_map'.Cela signifie qu'il n'y a pas d'exigences C++ standard, et cela dépend entièrement de l'implémentation. Alors ... quelle plateforme utilisez-vous, et quelle implémentation de 'hash_map'? –
ubuntu 10.04, implémentation de stl. Merci David – blueskin