_string_hash.h
来自「MONA是为数不多的C++语言编写的一个很小的操作系统」· C头文件 代码 · 共 71 行
H
71 行
/* * Copyright (c) 1997-1999 * Silicon Graphics Computer Systems, Inc. * * Copyright (c) 1999 * Boris Fomitchev * * This material is provided "as is", with absolutely no warranty expressed * or implied. Any use is at your own risk. * * Permission to use or copy this software for any purpose is hereby granted * without fee, provided the above notices are retained on all copies. * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. * */#ifndef _STLP_STRING_HASH_H# define _STLP_STRING_HASH_H#ifndef _STLP_HASH_FUN_H# include <stl/_hash_fun.h>#endif#ifndef _STLP_STRING_H# include <stl/_string.h>#endif_STLP_BEGIN_NAMESPACEtemplate <class _CharT, class _Traits, class _Alloc>_STLP_INLINE_LOOP size_t__stl_string_hash(const basic_string<_CharT,_Traits,_Alloc>& __s) { unsigned long __h = 0; typedef typename basic_string<_CharT,_Traits,_Alloc>::const_pointer const_ptr; size_t __len = __s.size(); const _CharT* __data = __s.data(); for ( size_t __i = 0; __i < __len; ++__i) __h = 5*__h + __data[__i]; return size_t(__h);}#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATIONtemplate <class _CharT, class _Traits, class _Alloc>struct hash<basic_string<_CharT,_Traits,_Alloc> > { size_t operator()(const basic_string<_CharT,_Traits,_Alloc>& __s) const { return __stl_string_hash(__s); }};#else_STLP_TEMPLATE_NULL struct _STLP_CLASS_DECLSPEC hash<string> { size_t operator()(const string& __s) const { return __stl_string_hash(__s); }};# if defined (_STLP_HAS_WCHAR_T)_STLP_TEMPLATE_NULL struct _STLP_CLASS_DECLSPEC hash<wstring> { size_t operator()(const wstring& __s) const { return __stl_string_hash(__s); }};# endif#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */_STLP_END_NAMESPACE#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?