Teen pankkitili-ohjelmaa c :lla ja haluaisin tulostaa tilitapahtumat niin että esim. kymmenestä vektoriin viedystä tapahtumasta tulostuvat viisi uusinta.
Kun tapahtumat viedään vektoriin komennolla 'vektori.push_back(tapahtuma)', jolloin uusin viedään viimeiseksi, niin onko komentoa jolla uusin viedään alkuun? Sitten voisi tulostaa toistolauseella for(int i=0; i
Kun tapahtumat viedään vektoriin komennolla 'vektori.push_back(tapahtuma)', jolloin uusin viedään viimeiseksi, niin onko komentoa jolla uusin viedään alkuun? Sitten voisi tulostaa toistolauseella for(int i=0; i
Vastaukset 2
Vanhimmat
Löysinkin jo tämän koodinpätkän joka vie alkuun:
vektori.insert(vektori.begin(), (uusi));
Tuo on todella hidas lisäys. Koitappa lisätä vektoriin tuolla tavalla vaikka 100000 kpl tietoja.
Tein ite pikatestin jossa tuolla insertillä meni yli 7 sekuntia kun pop_backillä jotain 0-15 millisekuntia.
Ehdottaisin että pistät normaaliin tapaan push_backillä vektorin hännille ja luet sieltä perästä ne 5 viimeisintä iteraattorilla takaperin.
Esim:
#include
#include
#include
using namespace std;
void main()
{
vector vektori;
clock_t c_start, c_end;
c_start = clock();
for(int i=0; i