15,978
社区成员




class CTimeCaster
{
public:
CTimeCaster()
{
m_tick = GetTickCount();
}
~CTimeCaster()
{
printf("time %dms\n", GetTickCount() - m_tick);
}
protected:
DWORD m_tick;
};
struct Point
{
int x, y;
};
struct Line
{
Point from, to;
};
int _tmain(int argc, _TCHAR* argv[])
{
const int sz = 100 * 10000;
{
CTimeCaster t;
std::vector<Line> vec(sz);
for (int i=0; i<sz; i++)
{
Line l = {i, i, i, i};
vec[i] = l;
}
}
{
CTimeCaster t;
std::vector<Line> vec;
vec.resize(sz);
for (int i=0; i<sz; i++)
{
Line l = {i, i, i, i};
vec[i] = l;
}
}
{
CTimeCaster t;
std::vector<Line> vec;
vec.reserve(sz);
for (int i=0; i<sz; i++)
{
Line l = {i, i, i, i};
vec.push_back(l);
}
}
{
CTimeCaster t;
std::vector<Line> vec;
for (int i=0; i<sz; i++)
{
Line l = {i, i, i, i};
vec.push_back(l);
}
}
return 0;
}