当前位置: 首页>>代码示例>>C++>>正文


C++ google::dense_hash_map类代码示例

本文整理汇总了C++中google::dense_hash_map的典型用法代码示例。如果您正苦于以下问题:C++ dense_hash_map类的具体用法?C++ dense_hash_map怎么用?C++ dense_hash_map使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了dense_hash_map类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SL_GetStringOfSize

int SL_GetStringOfSize(const char* string, int system, int size)
{
	EnterCriticalSection(&slCritSec);

	// try to find the string first
	std::string str(string, size);
	google::dense_hash_map<std::string, uint16_t>::const_iterator iter = slHashMap.find(str);

	if (iter != slHashMap.end())
	{
		SL_Debug("GetStringOfSize '%s' found %i\n", string, iter->second);

		SL_AddRefToString(iter->second);

		LeaveCriticalSection(&slCritSec);
		return iter->second;
	}

	// add the string to the list
	ScriptStringData* data = &slStrings[slFirstFree];
	uint16_t stringID = slFirstFree;

	//data->data = new ScriptStringManagementData;
	data->data = (ScriptStringManagementData*)HeapAlloc(stringHeap, 0, sizeof(ScriptStringManagementData));
	//data->string = (char*)malloc(size);
	data->string = (char*)HeapAlloc(stringHeap, 0, size);
	memcpy(data->string, string, size);

	data->length = size;

	data->data->data = data;
	data->data->references = 1;
	data->data->users = system;

	// find the next free string
	for (int i = slFirstFree; i < MAX_SCRIPT_STRINGS; i++)
	{
		if (!slStrings[i].string)
		{
			slFirstFree = i;
			break;
		}
	}

	slHashMap[str] = stringID;

	LeaveCriticalSection(&slCritSec);

	SL_Debug("GetStringOfSize '%s' allocated %i (user %i)\n", string, stringID, system);

	return stringID;
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:52,代码来源:PatchMW2StringList.cpp

示例2: init_QTMWlists

/*!
	initialise the various google::dense_hash_map "lists" that are used throughout QTils
 */
void init_QTMWlists()
{
	if( !q2nw_initialised ){
		// these two keys (variable names) should never occur:
		qtwmh2hwnd.set_empty_key( (QTMovieWindowH) 0 );
		qtwmh2hwnd.set_deleted_key( (QTMovieWindowH) -1 );
		q2nw_initialised = 1;
	}
	if( !nw2q_initialised ){
		// these two keys (variable names) should never occur:
		hwnd2qtwmh.set_empty_key( (NativeWindow) 0 );
		hwnd2qtwmh.set_deleted_key( (NativeWindow) -1 );
		nw2q_initialised = 1;
	}
	if( !m2qtmwh_initialised ){
		// these two keys (variable names) should never occur:
		m2qtmwh.set_empty_key( (Movie) 0 );
		m2qtmwh.set_deleted_key( (Movie) -1 );
		m2qtmwh_initialised = 1;
	}
#if defined(WIN32) || defined(_WINDOWS) || defined(_MSC_VER)
	if( !met_initialised ){
	  int i;
		// these two keys (variable names) should never occur:
		metMap.set_empty_key( (ErrCode) 65535 );
		metMap.set_deleted_key( (ErrCode) -65535 );
		for( i = 0 ; i < sizeof(macErrorTable) / sizeof(MacErrorTables) ; i++ ){
			metMap[macErrorTable[i].errCode] = &macErrorTable[i];
		}
		met_initialised = 1;
	}
#endif
	lastQTWMH = NULL;
}
开发者ID:RJVB,项目名称:QTilities,代码行数:37,代码来源:Lists.cpp

示例3: SEH_GetLocalizedString

const char* SEH_GetLocalizedString(const char* key)
{
	google::dense_hash_map<std::string, std::string>::const_iterator iter = _localizedStrings.find(key);
 
	if (iter != _localizedStrings.end())
	{
		return (*iter).second.c_str();
	}
 
	localizedEntry_s* entry = (localizedEntry_s*)DB_FindXAssetHeader(ASSET_TYPE_LOCALIZE, key);
 
	if (entry)
	{
		return entry->value;
	}
	
	return NULL;
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:18,代码来源:PatchMW2LocalizedStrings.cpp

示例4: dump_results

void dump_results(google::dense_hash_map<std::string, Probe*> &h_probes)
{
  int cs1[5], cs2[5];
  Probe *op; // Original probe

  google::dense_hash_map<std::string, Probe *>::iterator p_iter;
  for (p_iter=h_probes.begin(); p_iter!=h_probes.end(); p_iter++) {
    // In op we want always the original probe, not the rc one
    op = p_iter->second->is_a_rc_probe ? p_iter->second->rc : p_iter->second;
    if (!op->visited && (op->has_hits() || op->rc->has_hits())) {
      op->get_counters(cs1);
      op->rc->get_counters(cs2);
      std::cout
        << op->get_chrm() << ","
        << op->get_coordinates() <<  ","
        << op->get_id() <<  ","
        << op->get_ref() <<  ","
        << op->get_var() <<  ","

        << cs1[0] << ","
        << cs1[1] << ","
        << cs1[2] << ","
        << cs1[3] << ","
        << cs1[4] << ","

        << cs2[0] << ","
        << cs2[1] << ","
        << cs2[2] << ","
        << cs2[3] << ","
        << cs2[4] << ","

        << cs1[0] + cs2[0] << ","
        << cs1[1] + cs2[1] << ","
        << cs1[2] + cs2[2] << ","
        << cs1[3] + cs2[3] << ","
        << cs1[4] + cs2[4]

        << std::endl;

      op->visited = 1;
      op->rc->visited = 1;
    }
  }
}
开发者ID:drio,项目名称:egrl,代码行数:44,代码来源:count.cpp

示例5: FindStringOfSize

int FindStringOfSize(const char* string, int size)
{
	EnterCriticalSection(&slCritSec);

	std::string str(string, size);

	google::dense_hash_map<std::string, uint16_t>::const_iterator iter = slHashMap.find(str);

	if (iter != slHashMap.end())
	{
		LeaveCriticalSection(&slCritSec);

		SL_Debug("FindStringOfSize '%s' found %i\n", string, iter->second);

		return iter->second;
	}

	SL_Debug("FindStringOfSize '%s' - no results!\n", string, iter->second);

	LeaveCriticalSection(&slCritSec);

	return 0;
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:23,代码来源:PatchMW2StringList.cpp

示例6: unregister_QTMovieWindowH_from_NativeWindow

/*!
	remove a NativeWindow -> QTMovieWindowH association
 */
void unregister_QTMovieWindowH_from_NativeWindow( NativeWindow hwnd )
{
	if( nw2q_initialised && hwnd && hwnd2qtwmh.count(hwnd) ){
		hwnd2qtwmh.erase(hwnd);
		hwnd2qtwmh.resize(0);
	}
}
开发者ID:RJVB,项目名称:QTilities,代码行数:10,代码来源:Lists.cpp

示例7: unregister_QTMovieWindowH_for_Movie

/*!
	unregisters a QTMovieWindowH from Movie association
 */
void unregister_QTMovieWindowH_for_Movie( Movie movie )
{
	if( movie && m2qtmwh_initialised && m2qtmwh.count(movie) ){
		m2qtmwh.erase(movie);
		m2qtmwh.resize(0);
	}
}
开发者ID:RJVB,项目名称:QTilities,代码行数:10,代码来源:Lists.cpp

示例8: PatchMW2_StringList

void PatchMW2_StringList()
{
	slHashMap.set_empty_key("*DUMMYDUMMY*");
	slHashMap.set_deleted_key("*DUMMYDUMM*");

	call(0x4D2280, SL_Init, PATCH_JUMP);
	call(0x436B40, SL_GetStringOfSize, PATCH_JUMP);
	call(0x4EC1D0, SL_ConvertToString_, PATCH_JUMP);
	call(0x61BCB0, FindStringOfSize, PATCH_JUMP);
	call(0x469D80, SL_ConvertFromString, PATCH_JUMP);
	call(0x4D9B00, SL_AddRefToString, PATCH_JUMP);
	call(0x4F1500, SL_RemoveRefToStringOfSize, PATCH_JUMP);
	call(0x47CD70, SL_RemoveRefToString, PATCH_JUMP);
	call(0x417730, Scr_SetString, PATCH_JUMP);
	call(0x4401E0, SL_GetStringLen, PATCH_JUMP);
	call(0x40C050, SL_TransferRefToUser, PATCH_JUMP);
	call(0x4B4310, SL_AddUser, PATCH_JUMP);
	call(0x430510, SL_ConvertToLowercase, PATCH_JUMP);
	call(0x4F46D0, SL_ShutdownSystem, PATCH_JUMP);
	call(0x4A44A0, SL_TransferSystem, PATCH_JUMP);

	stringHeap = HeapCreate(0, 1024 * 1024, 0);

	// path_node_constant_t marking function; has some terrible string references
	*(BYTE*)0x4F74B0 = 0xC3;
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:26,代码来源:PatchMW2StringList.cpp

示例9: SL_FreeString

void SL_FreeString(uint16_t string)
{
	EnterCriticalSection(&slCritSec);

	ScriptStringData* data = &slStrings[string];
	//delete data->data;
	HeapFree(stringHeap, 0, data->data);

	std::string str(data->string, data->length);

	slHashMap.erase(str);

	SL_Debug("FreeString %i '%s'\n", string, data->string);

	//free((void*)data->string);
	HeapFree(stringHeap, 0, data->string);

	if (string < slFirstFree)
	{
		slFirstFree = string;
	}

	data->data = NULL;
	data->string = NULL;

	LeaveCriticalSection(&slCritSec);
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:27,代码来源:PatchMW2StringList.cpp

示例10: PatchMW2_StringTable

// entry point
void PatchMW2_StringTable()
{
	stringTables.set_empty_key("");

	stringTableHook.initialize(stringTableHookLoc, StringTable_GetAsset);
	stringTableHook.installHook();
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:8,代码来源:PatchMW2StringTable.cpp

示例11: QTMovieWindowH_from_Movie

/*!
	given a movie, find the associated QTMovieWindowH object
 */
QTMovieWindowH QTMovieWindowH_from_Movie( Movie movie )
{ QTMovieWindowH wi;
	if( movie && m2qtmwh_initialised && m2qtmwh.count(movie) ){
		wi = m2qtmwh[movie];
		if( Handle_Check(wi) && (*wi)->self == *wi && (*wi)->theMovie == movie ){
			return wi;
		}
	}
	return NULL;
}
开发者ID:RJVB,项目名称:QTilities,代码行数:13,代码来源:Lists.cpp

示例12: QTMovieWindowH_from_NativeWindow

/*!
	look up the QTMovieWindowH that uses the given window for displaying. Used in event processing.
 */
QTMovieWindowH QTMovieWindowH_from_NativeWindow( NativeWindow hwnd )
{ QTMovieWindowH wi;
	if( hwnd2qtwmh.count(hwnd) ){
		wi = hwnd2qtwmh[hwnd];
		if( QTMovieWindowH_Check(wi) && (*wi)->theView == hwnd ){
			return wi;
		}
	}
	return NULL;
}
开发者ID:RJVB,项目名称:QTilities,代码行数:13,代码来源:Lists.cpp

示例13: fetch_index

 // fetch the row associated with the given index 
 // and assign it if it doesn't exist
 lindex fetch_index(mwIndex gi) {
     if (imap.count(gi) != 0) {
         return imap[gi];
     }
     lindex li = nextind;
     nextind ++;
     imap[gi] = li;
     grow_vector_to_index(gmap, li, (mwIndex)(-1));
     gmap[li] = gi;
     return li;
 }
开发者ID:dgleich,项目名称:nexpokit,代码行数:13,代码来源:gexpmq_mex.cpp

示例14: PatchMW2_LocalizedStrings

void PatchMW2_LocalizedStrings()
{
	_localizedStrings.set_empty_key("");
 
	loadLocalizeHook.initialize(loadLocalizeHookLoc, SEH_GetLocalizedString);
	loadLocalizeHook.installHook();
 
	call(0x4CE5EE, SetString, PATCH_CALL); //instead of calling CStringEdPackage::SetString in CStringEdPackage::ParseLine we call our SetString
	call(0x41D860, SELoadLanguageHookStub, PATCH_JUMP); //instead of the game loading str files according to loc_language we load them according to loc_modlanguage
 
	Dvar_RegisterEnum("loc_modLanguage", ModLanguageEnum, 0, DVAR_FLAG_SAVED, "Preferred language for custom localized strings.");
}
开发者ID:Call-of-Duty-Scripts,项目名称:fourdeltaone,代码行数:12,代码来源:PatchMW2LocalizedStrings.cpp

示例15: SetUp

 virtual void SetUp() {
     hashMap.set_empty_key(NULL);
     hashMap["january"] = 31;
     hashMap["february"] = 29;
     hashMap["march"] = 31;
     hashMap["april"] = 30;
     hashMap["may"] = 31;
     hashMap["june"] = 30;
     hashMap["july"] = 31;
     hashMap["august"] = 31;
     hashMap["september"] = 30;
     hashMap["october"] = 31;
     hashMap["november"] = 30;
     hashMap["december"] = 31;
 }
开发者ID:gvsurenderreddy,项目名称:Triss,代码行数:15,代码来源:ghashmap_test.cpp


注:本文中的google::dense_hash_map类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。