Этот код работал в течение 0,012 секунд:
std::list<int> list;
list.resize(100);
int size;
for(int i = 0 ; i < 10000; i++)
size = list.size();
Этот за 9.378 секунд:
std::list<int> list;
list.resize(100000);
int size;
for(int i = 0 ; i < 10000; i++)
size = list.size();
По-моему, можно было бы реализовать std:: list таким образом, этот размер будет храниться в частной переменной, но в соответствии с этим он вычисляется снова каждый раз, когда я вызываю размер. Может кто-нибудь объяснить, почему?