y*****a 发帖数: 221 | 1 弱问如果面试的时候说要用hash table又用c++答题的话,怎么办?
STL没有hashtable啊,能说用map代替吗? |
t*****j 发帖数: 1105 | 2 这个到时候和面试官商量,大概表示出意思就行了。
hashtable
【在 y*****a 的大作中提到】 : 弱问如果面试的时候说要用hash table又用c++答题的话,怎么办? : STL没有hashtable啊,能说用map代替吗?
|
c*********7 发帖数: 19373 | 3 自己定义个简单的hash table,其实用数组+映射就行。复杂的可能需要用map了。 |
y*****a 发帖数: 221 | 4 就是说只管映射过去,不处理collision?
【在 c*********7 的大作中提到】 : 自己定义个简单的hash table,其实用数组+映射就行。复杂的可能需要用map了。
|
y**i 发帖数: 1112 | 5 用stl扩展库里的hash_map
#include
...
stdext::hash_map<...,...> ...;
【在 y*****a 的大作中提到】 : 弱问如果面试的时候说要用hash table又用c++答题的话,怎么办? : STL没有hashtable啊,能说用map代替吗?
|
y*****a 发帖数: 221 | 6 嗯,到时候用这个
【在 y**i 的大作中提到】 : 用stl扩展库里的hash_map : #include : ... : stdext::hash_map<...,...> ...;
|
h**6 发帖数: 4160 | 7 不错,确实挺好用的。hash_map用法和map差不多,hash_set用法和set差不多。随便写
了一个找数组中和为指定数的程序。
#include
pair GetSumPair(int* x, int n, int sum)
{
stdext::hash_set S;
pair result(-1, -1);
for(int i=0; i
{
stdext::hash_set::iterator it = S.find(sum-x[i]);
if(it == S.end())
S.insert(x[i]);
else
{
result.first = *it;
result.second = x[i];
break;
}
}
return result;
} |
y*****a 发帖数: 221 | 8 学习了
【在 h**6 的大作中提到】 : 不错,确实挺好用的。hash_map用法和map差不多,hash_set用法和set差不多。随便写 : 了一个找数组中和为指定数的程序。 : #include : pair GetSumPair(int* x, int n, int sum) : { : stdext::hash_set S; : pair result(-1, -1); : for(int i=0; i: { : stdext::hash_set::iterator it = S.find(sum-x[i]);
|
S**I 发帖数: 15689 | 9 问题是这个现在还不是标准,你这个代码在GCC下就通不过编译。
【在 h**6 的大作中提到】 : 不错,确实挺好用的。hash_map用法和map差不多,hash_set用法和set差不多。随便写 : 了一个找数组中和为指定数的程序。 : #include : pair GetSumPair(int* x, int n, int sum) : { : stdext::hash_set S; : pair result(-1, -1); : for(int i=0; i: { : stdext::hash_set::iterator it = S.find(sum-x[i]);
|
D*******a 发帖数: 3688 | 10 hash_map is in GCC.
【在 S**I 的大作中提到】 : 问题是这个现在还不是标准,你这个代码在GCC下就通不过编译。
|
y*****a 发帖数: 221 | 11 自己回一下这个,给平时用不到hash_set的人,在GCC
#include
using namespace __gnu_cxx;
【在 D*******a 的大作中提到】 : hash_map is in GCC.
|
l******e 发帖数: 12192 | 12 tr1::unordered_map
【在 y*****a 的大作中提到】 : 弱问如果面试的时候说要用hash table又用c++答题的话,怎么办? : STL没有hashtable啊,能说用map代替吗?
|
y*****a 发帖数: 221 | 13 发现这个默认的hash function只有少数几种type,比如string就得自己
写一个hash function了。。
【在 h**6 的大作中提到】 : 不错,确实挺好用的。hash_map用法和map差不多,hash_set用法和set差不多。随便写 : 了一个找数组中和为指定数的程序。 : #include : pair GetSumPair(int* x, int n, int sum) : { : stdext::hash_set S; : pair result(-1, -1); : for(int i=0; i: { : stdext::hash_set::iterator it = S.find(sum-x[i]);
|
K******g 发帖数: 1870 | 14 很奇怪,既然hashtable一般与hash fuction有很大关系,而且避免collision的方法有
很多种,如果提供一个统一的hash_map的接口的话,怎么定义hash function和避免
collision呢?
【在 h**6 的大作中提到】 : 不错,确实挺好用的。hash_map用法和map差不多,hash_set用法和set差不多。随便写 : 了一个找数组中和为指定数的程序。 : #include : pair GetSumPair(int* x, int n, int sum) : { : stdext::hash_set S; : pair result(-1, -1); : for(int i=0; i: { : stdext::hash_set::iterator it = S.find(sum-x[i]);
|