C++Builder相談室 Part11
■ このスレッドは過去ログ倉庫に格納されています
0708デフォルトの名無しさん
NGNGBCB6はインライン展開がアフォ過ぎるからSTL使うと糞遅くなる証明
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#include <windows.h>
#include <string>
int compare(const void* a, const void* b) { return strcmp(((std::string*)a)->c_str(), ((std::string*)b)->c_str()); }
struct Compare :
public std::binary_function<const std::string&, const std::string&, bool>
{
inline bool operator ()(const std::string& a, const std::string& b) const
{ return strcmp(a.c_str(), b.c_str()) < 0; }
};
const int ssize = 1000000;
main()
{
std::string *s = new std::string[ssize];
for(int i=0;i<ssize;i++)
{
for(int i=0;i<16;i++)
{
s[i] += char(rand() % 26 + 'a');
}
}
DWORD t = GetTickCount();
//qsort(s, ssize, sizeof(std::string), compare);
std::sort(s, s+ssize);
printf("%dms\n", GetTickCount()-t);
delete[] s;
}
■ このスレッドは過去ログ倉庫に格納されています