linux中使用hashmap

#include "apue.h"
#include <iostream>
#include <string>
#include <list>
#include <cstddef>
#include "Sales_item.h"
#include <vector>
#include <map>

#ifdef __GNUC__
#include <ext/hash_map>
#else
#include <hash_map>
#endif
using namespace std;

namespace std
{
using namespace __gnu_cxx;
}

int main(void){
	hash_map<int,int> hm;
	hm.insert(pair<int,int>(1,2));
	hm.insert(pair<int,int>(2,3));
	hash_map<int,int>::iterator it=hm.begin();
	for(;it!=hm.end();it++)
		cout<<it->first<<"\t"<<it->second<<endl;
	return 0;
}



在处理string作为key时需要下面处理方式

#include "apue.h"
#include <iostream>
#include <string>
#include <list>
#include <cstddef>
#include "Sales_item.h"
#include <vector>
#include <map>

#include <ext/hash_map>
using namespace std;
using namespace __gnu_cxx;
namespace __gnu_cxx {
template<> struct hash<std::string> {
	size_t operator()(const std::string& x) const {
		return hash<const char*>()(x.c_str());
	}
};
}

int main() {
	hash_map<string, int> str_hash;
	str_hash["text"] = 2;
	str_hash.insert(pair<string,int>("3223",22));
	cout << str_hash["text"] <<endl;
	return 0;
}


你可能感兴趣的:(linux中使用hashmap)