Salve
Usando la libreria chrono ho eseguito questa profilatura della funzione membro push_back di list e vector
Quello che noto è che le liste sono più lente dei vettori nell'aggiungere dati (almeno nel mio pc, sono più veloci quando si aggiungono tra i 2 e i 18 dati).
Ma quindi quando conviene usare le liste?
Grazie mille in anticipo!
Usando la libreria chrono ho eseguito questa profilatura della funzione membro push_back di list e vector
C++:
#include <vector>
#include <list>
#include <chrono>
#define NMAX 10000
int main()
{
std::cout << "Questo programma mostra le differenze computazionali tra list e vector" << std::endl;
std::chrono::duration<double> diffL, diffV;
std::chrono::system_clock::time_point start, end;
for (volatile int i = 0; i < NMAX; i++)
{
{
std::list<unsigned> myList;
start = std::chrono::system_clock::now();
for (volatile int j = 0; j < i; j++)
myList.push_back(0);
end = std::chrono::system_clock::now();
diffL = end - start;
}
{
std::vector<unsigned> myVec;
start = std::chrono::system_clock::now();
for (volatile int j = 0; j < i; j++)
myVec.push_back(0);
end = std::chrono::system_clock::now();
diffV = end - start;
}
std::cout << "Rapporto tempo trascorso per aggiungere " << i << " dati: " << diffL.count() / diffV.count() << std::endl;
}
return 0;
}
Ma quindi quando conviene usare le liste?
Grazie mille in anticipo!