C++——散列(hash)
散列(hash) : 将元素通过一个函数 转换为整数 ,使得该整数可以尽量 唯一 地代表这个元素。 例如,在仅出现"A"~"Z"的字符串就可以通过hash(26*26*26)将 字符型 数据转换为 整型 数据,并且数据 不会发生重复 。代码如下: # include <iostream> using namespace std ; # define MAX 5 //输入数据的数量 int getid ( char * id ) { //将长度为3的字符串转换为整型存储 int i_id = 0 ; for ( int i = 0 ; i < 3 ; i ++ ) i_id = 26 * i_id + ( id [ i ] - 'A' ) ; return i_id ; } int main ( ) { //使用(散列)hash(26*26*26)将字符型数据转换为整型数据 const int maxn = 26 * 26 * 26 ; int s [ maxn ] , i_id ; char c_id [ MAX ] [ 3 ] ; for ( int i = 0 ; i < MAX ; i ++ ) { cin >> c_id [ i ] ; //输入字符型数据 i_id = getid ( c_id [ i ] ) ; //将字符型转换为整型 s [ i ] = i_id ;