Example #1
0
CSuffixArray::CSuffixArray(CCharBuffer &text) {

	LARGE_INTEGER frequency;
	LARGE_INTEGER t1, t2;
	QueryPerformanceFrequency(&frequency);

	printf("            reserving memory for suffixes ");
	QueryPerformanceCounter(&t1);
	arr.reserve(text.length());
	QueryPerformanceCounter(&t2);
	printf("%.2lf ms\n", (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart);

	printf("            adding suffixes ");
	QueryPerformanceCounter(&t1);
	for(unsigned int i=0; i<text.length(); i++)
		arr.push_back(myStr(&text.getBuffer()[i], text.length()-i));
	QueryPerformanceCounter(&t2);
	printf("%.2lf ms\n", (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart);

	printf("            sorting suffixes ");
	QueryPerformanceCounter(&t1);
	std::sort(arr.begin(), arr.end());
	QueryPerformanceCounter(&t2);
	printf("%.2lf ms\n", (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart);

}
Example #2
0
//向表中插入记录
bool SqliteManager::InsertData(sqlite3* MyDB, string tableName, unordered_map<string, string> paraInfoSTR, unordered_map<string, INT64> paraInfoINT) {
	string strPara1, strPara2;

	//字符串类型参数的拼接
	unordered_map<string, string>::iterator itor1;
	for (itor1 = paraInfoSTR.begin(); itor1 != paraInfoSTR.end(); itor1++)
	{
		strPara1 += itor1->first + ",";
		strPara2 += "'" + itor1->second + "',";
	}

	//整型参数的拼接
	unordered_map<string, INT64>::iterator itor2;
	for (itor2 = paraInfoINT.begin(); itor2 != paraInfoINT.end(); itor2++)
	{
		strPara1 += itor2->first + ",";

		char str[50];
		sprintf(str, "%d", itor2->second);
		string myStr(str);
		strPara2 += myStr + ",";
	}

	//去掉最后一个逗号
	strPara1.erase(strPara1.size() - 1, 1);
	strPara2.erase(strPara2.size() - 1, 1);

	string sqlstr = "insert into " + tableName + " (" + strPara1 + ") values(" + strPara2 + ");";//sql语句
	CCLOG(sqlstr.c_str());

	//注册超时等待时间为1000ms
	sqlite3_busy_timeout(MyDB, 1000);
	//执行
	char* errMsg;
	int result = sqlite3_exec(MyDB, sqlstr.c_str(), NULL, NULL, &errMsg);
	if (result != SQLITE_OK) {
		CCLOG("insert error----------%s", errMsg);
		return false;
	}
	return true;
}