pytanie do algorytmikow
powiedzcie mi jakie rozwiazanie jest wydajniejsze przy tworzeniu list, korzystanie z biblioteki stl czy tworzenie wlasnej listy za pomoca struktur albo kals?? mowa o c++
pytanie do algorytmikow
powiedzcie mi jakie rozwiazanie jest wydajniejsze przy tworzeniu list, korzystanie z biblioteki stl czy tworzenie wlasnej listy za pomoca struktur albo kals?? mowa o c++
konstrukcja listy jest tak prosta, ze jezeli nie masz problemu ze wskaznikami to sam zaimplementujesz ja bez problemu. Ja osobiscie wole tworzyc wlasne niz ort! z predefiniowanych - nie zauwazylem zadnych roznic w dzialaniu programow (a mowie o listach ort! kilkunastu MB)
ja listy tworze wg. sposobu Adama Drozdka
class IntNode {
public:
int info;
class IntNode *next;
IntNode(int el,IntNode *ptr=0) {
info=el;
next=ptr;
}
};
class IntSLList {
public:
IntSLList() {
head=tail=0;
}
void addToHead(int);
void addToTail(int);
void deleteFromTail();
void deleteFromHead();
void print();
private:
IntNode *head, *tail;
};
void IntSLList::addToHead(int el)
{
head=new IntNode(el,head);
if (tail==0)
tail=head;
}
void IntSLList::addToTail(int el)
{
if (tail!=0) {
tail->next=new IntNode(el);
tail=tail->next;
}
else
head=tail=new IntNode(el);
}
void IntSLList::print()
{
for (IntNode *tmp=head;tmp!=0;tmp=tmp->next) {
cout << tmp->info << " ";
}
}
void IntSLList::deleteFromHead()
{
IntNode *tmp=head;
if (head==tail) {
head=tail=0;
}
else
{
head=head->next;
}
delete tmp;
}
void IntSLList::deleteFromTail()
{
if (head==tail) {
delete head;
head=tail=0;
}
else
{
IntNode *tmp;
for(tmp=head;tmp->next!=tail;tmp->next);
delete tail;
tail=tmp;
tail->next=0;
}
}
//kody umieszczaj w tagach do tego przeznaczonych - M