Why is the destructor std::queuevery slow? look at my example:
void test()
{
int total = 17173512;
std::queue<int> q;
for(int i = 0; i < total; i++)
q.push(i);
std::cout<<"Done"<<std::endl;
}
test();
std::cout<<"Done"<<std::endl;
Destructor in a std::vectorvery fast ...
UPDATED:
My compiler / IDE is Visual Studio 2012 Visual C ++.
int main(int argc, char **argv)
{
int total = 17173512;
std::queue<int> q;
for(int i = 0; i < total; i++)
q.push(i);
std::cout<<"Done0"<<std::endl;
while(!q.empty())
q.pop();
std::cout<<"Done1"<<std::endl;
return 0;
}
With vector:
int main(int argc, char **argv)
{
int total = 17173512;
std::vector<int> q(total);
for(int i = 0; i < total; i++)
q[i] = 2000;
std::cout<<"Done"<<std::endl;
return 0;
}
UPDATE 2:
Everything is decided now! I uninstalled Visual studio 2012 + visual C ++. I installed Visual Studio Community 2015 and everything is much faster and works as expected!
source
share