Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

czy jest jaka kolwiek różnica wydajnościowa pomiędzy listą STL, a własną implementacją listy?

Ostatnio zmodyfikowano 2011-06-18 23:48
Autor Wiadomość
markon
Temat założony przez niniejszego użytkownika
czy jest jaka kolwiek różnica wydajnościowa pomiędzy listą STL, a własną implementacją listy?
» 2011-06-17 23:00:57
Witam,
tak jak w temacie, czy jest jakaś różnica, myślę tutaj o reprezentacji listy jednokierunkowej za pomocą wskaźników i struktur
P-34237
michalp
» 2011-06-17 23:01:51
Zależy jak napiszesz.
P-34239
DejaVu
» 2011-06-18 00:26:25
Porównaj sobie szybkość std::list i std::vector realizując chociażby na obu kontenerach stos - wykonanie pomiarów czasowych powinno dać Ci odpowiedź jasną i klarowną :) Chyba, że złe testy napiszesz to nic Ci z nich nie wyjdzie sensownego ;p

/edit:
http://cpp0x.pl/forum/temat/?id=4004
P-34241
markon
Temat założony przez niniejszego użytkownika
» 2011-06-18 10:45:45
z linka, który podałeś wynika, że warto jest pisać swoje własne listy jednokierunkowe, dwukierunkowe, zamiast używać list z STL-a
Sądzę że warto go używać gdy nie zależy nam na czasie,
może nie ten temat, ale nie mogę sobie poradzić z następującym problemem:
struct Node //tutaj będę miał listę węzłow grafu
{
        ListaNastepnikow *nastepnicy;
        int numerWezla;
}*root;
zaś ta lista następników jest po prostu lista węzłów, które są następnikami danego węzła Node:
struct ListaNastepnikow{
Node *node;

}

zupełnie nie wiem jak to zrealizować, aby to było eleganckie rozwiązanie, jak to zrobić?
P-34246
michalp
» 2011-06-18 11:07:17
A nie lepiej:

C/C++
struct ListNode
{
    int value;
    ListNode * next;
    ListNode * prev; // dla listy dwukierunkowej
};
P-34247
absflg
» 2011-06-18 11:08:34
W każdym elemencie przechowuj nie tylko informacje o następniku, ale i o poprzedniku.
Podczas zmiany na liście będziesz mógł wywołać aktualizację tej liczby tylko dla elementów przed kasowanym/wstawianym. W przeciwnym razie musiałbyś za każdym razem zliczać elementy na liście i aktualizować całą listę od początku.

Po co ci w ogóle taka informacja?
P-34248
DejaVu
» 2011-06-18 15:12:31
Wątpię czy uzyskasz czasy lepsze niż STL nie mając dużego doświadczenia w programowaniu - być może w konkretnych testach tak, ale w ogólnym rozrachunku będzie to wątpliwe. STLa powinieneś znać i go używać w swoich aplikacjach chociażby dlatego, że jest on na porządku dziennym w komercyjnych aplikacjach. Chyba, że masz już kontenery opanowane w małym palcu i faktycznie jest uzasadnienie tworzenia komponentu szybszego oraz wiesz jak się do tego zabrać. Dodam też, że radosna implementacja listy wg algorytmu książkowego będzie niczym innym jak STL'em, więc w najlepszym przypadku uzyskasz czasy być może o 15% lepsze od STL-a, a kodu do utrzymania przybędzie nie mówiąc już o upierdliwości w jego późniejszym rozwijaniu. Niemniej jednak jeżeli nie zrobisz tej własnej implementacji idealnie to nie dość, że się narobisz to i Twoja implementacja będzie wolniejsza od STL-a :P
P-34251
dmx81
» 2011-06-18 17:03:55
porownanie np vectora i listy, strona 23-28
nie wiem, czy sie przyda, ale ktos zrobil porownanie dla vectora i listy. chyba samemu ciezko napisac cos szybszego - bez baaaardzo dobrej znajomosci jezyka, nad tym pracuje grupa ludzi z duzym doswiadczeniem, szukajac jak najbardziej wydajnego rozwiazania, wiec pewnie w domowym zaciszu ciezko bedzie ich poprawic.
P-34256
« 1 » 2
  Strona 1 z 2 Następna strona