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;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值