Stack dynamisch
-
Also ich habe mit Templates noch nicht gearbeitet und weiß nicht was das ist... bzw. ich habe es gerade mal gegoogelt. Also ich bin gerade am Anfang von C++... Nochmal zu der Aufgabe, es soll eine Verkettete Liste verwendet werden. Die Konstanten hatte ich vergessen rauszunehmen, wusste nicht mehr ob die vor definiert sind.
Vielen Dank erstmal für die Vorschläge!

-
Stack schrieb:
Also ich habe mit Templates noch nicht gearbeitet und weiß nicht was das ist... bzw. ich habe es gerade mal gegoogelt. Also ich bin gerade am Anfang von C++... Nochmal zu der Aufgabe, es soll eine Verkettete Liste verwendet werden.
Denkvorschlag (nichts ernstes):
template<typename type, typename container = std::deque<type>> class stack { size_t mSize; container mContainer; public: explicit stack(container const& Con = container()): mSize(Con.size()), mContainer(Con) {} void push(type const& e) { mContainer.push_back(e); } void pop() { mContainer.pop_back(); } type& top() { return mContainer.back(); } type const& top() const { return mContainer.back(); } bool empty() const {return !size();} size_t size() const {return mSize;} };Ein wenig wie der
std::stack.
Du kannst wegen der verketten liste ja das machen:stack<int, std::list<int>> s;Oder gleich als default-parameter ...
Wenn du keine Templates magst, kannst du alletypes durchintund allecontainers durchstd::list<int>ersetzen.
-
Buhh, da muss ich jetzt erstmal schlucken
aber an sich ist deine Idee nicht schlecht... ich muss das jetzt erstmal verarbeiten! Aber vielen Dank 
-
Wieso sollte irgendjemand eine deque für einen Stack nehmen? Die höchstens bei einer FIFO-Queue, ein Stack ist aber LIFO.
-
Ethon schrieb:
Wieso sollte irgendjemand eine deque für einen Stack nehmen? Die höchstens bei einer FIFO-Queue, ein Stack ist aber LIFO.
Deswegen ja nur als Hinweis, dass auch eine
dequeihren Zweck erfüllen würde. Da eignet sich aber (wie bereits durch mich angedeutet - oder auch nicht) einestd::listbesser.
-
Stack schrieb:
Start = (cStack*)malloc(sizeof(cStack));Eieieieiei! Was ist dein Background und wie lernst du C++?
-
krümelkacker schrieb:
Stack schrieb:
Start = (cStack*)malloc(sizeof(cStack));Eieieieiei! Was ist dein Background und wie lernst du C++?
Selbst für einen C-Programmierer Beängstigend. Nie den Rückgabewert von
malloccasten...
-
Hacker schrieb:
wobei bemerkt sei das std::deque auch eine verkette Liste ist
Eieieieiei! Was ist dein Background und wie lernst du die STL?
-
Edit: gelöscht.
-
deque hat so ziemlich nichts mit verketteten Listen zu tun...
-
Edit: Ah, stop. Da hab ich wohl den namen falsch verstanden...
Deque wird ja intern durch ein Array dargestellt und ist wie einstd::vectoraufgebaut.
-
Nö.
-
Kellerautomat schrieb:
Nö.
Doch, laut Jürgen Wolf.
-
...
-
Hacker schrieb:
Doch, laut Jürgen Wolf.

Quelle: C++ Reference - dequeu
[...] unlike vectors, deques are not guaranteed to have all its elements in contiguous storage locations, eliminating thus the possibility of safe access through pointer arithmetics.
Both vectors and deques provide thus a very similar interface and can be used for similar purposes, but internally both work in quite different ways: While vectors are very similar to a plain array that grows by reallocating all of its elements in a unique block when its capacity is exhausted, the elements of a deques can be divided in several chunks of storage, with the class keeping all this information and providing a uniform access to the elements.
[...]
-
Gut, gut. Jetzt liegt das Buch im Müll. Mein C++-Wissen ist mir locker nochmal 40€ wert...
-
Laut Jürgen Wolf erbt eine Wurst auch virtuell vom Supermarkt.

gruß
syntax
-
Syntax_error schrieb:
Laut Jürgen Wolf erbt eine Wurst auch virtuell vom Supermarkt.

gruß
syntaxSupermarkt ist eine Wurst und ein Brot.
Der Typ hat sie doch nicht mehr alle, bald kommt
struct Kind : public F***e, protected Penis
-
Und Erwachsene haben keine Geschlechtsorgane?
-
Kellerautomat schrieb:
Und Erwachsene haben keine Geschlechtsorgane?
template<typename genetalien> class Erwachsen : public Burnout, public Finanzkrise, private Beziehungsprobleme, private genetalienÜbrigens ein interessantes Paradigma, ableiten von template-parametern.