65,186
社区成员




long time = timeGetTime( );
for( Mptable::iterator itr = mapnode.begin() ; itr != mapnode.end() ; )
{
delete itr->second;
mapnode.erase( itr++ );
}
std::cout <<"map : spend " << timeGetTime() - time << " second " << std::endl;
list
long time = timeGetTime( );
for( List::iterator itr = listnode.begin() ; itr != listnode.end() ; )
{
delete *itr;
itr = listnode.erase( itr );
}
std::cout <<"list : spend " << timeGetTime() - time << " second " << std::endl;
Performance Frequency: 1566064
map_erase(mp):
Repeat count: [1], Stat count: [50]
Minimum Time: [932545]
Average Time: [951295]
Summary Time: [47564785]
list_erase(ls):
Repeat count: [1], Stat count: [50]
Minimum Time: [569265]
Average Time: [588079]
Summary Time: [29403984]
void prev_test(std::map<int, int>& mp)
{
for(int i = 0; i < 1000000; ++i){ mp[i] = i; }
}
void map_erase(std::map<int, int>& mp)
{
while( !mp.empty() ){ mp.erase(mp.begin()); }
}
void post_test(std::map<int, int>& mp)
{
mp.clear();
}
void prev_test(std::list<int>& ls)
{
for(int i = 0; i < 1000000; ++i){ ls.push_back(i); }
}
void list_erase(std::list<int>& ls)
{
for(std::list<int>::iterator i = ls.begin(); i != ls.end(); ){ i = ls.erase(i); }
}
void post_test(std::list<int>& ls)
{
ls.clear();
}
int main(int argc, char* argv[])
{
LONGLONG perfFreq;
QueryPerformanceFrequency((LARGE_INTEGER*)&perfFreq);
std::cout << "Performance Frequency: " << perfFreq << '\n';
std::map<int, int> mp;
std::list<int> ls;
PERFORMANCE_TEST(prev_test(mp), map_erase(mp), std::cout, post_test(mp) );
PERFORMANCE_TEST(prev_test(ls), list_erase(ls), std::cout, post_test(ls) );
return 0;
}
long time = timeGetTime( );
for( Mptable::iterator itr = mapnode.begin() ; itr != mapnode.end() ; )
{
delete itr->second;
mapnode.erase( itr++ );
}
std::cout <<"map : spend " << timeGetTime() - time << " msec " << std::endl;
time = timeGetTime( );
for( List::iterator itr = listnode.begin() ; itr != listnode.end() ; )
{
delete *itr;
itr = listnode.erase( itr );
}
std::cout <<"list : spend " << timeGetTime() - time << " msec " << std::endl;