Ich versuche nur, C++ zu bekommen und das zu tun, ich muss meine eigenen Bibliotheken und was nicht. Also versuche ich, die Anfänge meiner eigenen List-Template-Klasse genau wie die List-Klasse im JDK zu bekommen. Also habe ich die Vorlage und die Sachen runter, ich will nur wissen, wie ich es machen würde, damit ich den Inhalt eines Listenobjekts durchlaufen könnte. Auf diese Weise kann ich den Inhalt des Objekts ausdrucken. Ich weiß nicht genau, wo ich anfangen soll.Wie durchläuft benutzerdefinierte Liste in C++
#pragma once
template<typename T> class List {
public:
List() : _size(0), _elements(nullptr) {}
~List() {
if (_elements != nullptr) {
delete[] _elements;
}
}
inline int size() { return _size; }
inline void add(T element) {
_size++;
T* buffer = new T[_size];
if (_elements != nullptr) {
memcpy(buffer, _elements, sizeof(T) * (_size - 1));
delete[] _elements;
}
buffer[_size - 1] = element;
_elements = buffer;
}
inline void remove(T element) {
_size--;
T* buffer = new T[_size];
if (_elements != nullptr) {
memcpy(buffer, _elements, sizeof(T) * _size);
delete[] _elements;
}
else {
assert(false);
}
_elements = buffer;
}
inline T* getElements() {
return _elements;
}
private:
int _size;
T* _elements;
};
Und das ist meine Haupt CPP-Datei
#include <cstdio>
#include <string>
#include "List.h"
using namespace std;
int main(int argc, char ** argv)
{
string str = "This is a test!";
List<char> list = breakString(str);
for (char c : list.getElements()) {
}
getchar();
return 0;
}
List<char> breakString(string str) {
List<char> list;
for (char c : str) {
list.add(c);
}
return list;
}
Also, was ich versuche, dass, um herauszufinden, für Schleife ist, bin ich früher wobei ein for-Schleife verbessert wie in Java , und ist das das gleiche hier in C++? Wenn ja, wie würde ich dieses Objekt iterierbar machen?
Ich dachte, ich würde eine genauere Antwort auf meine Frage bekommen, wenn ich direkt fragen würde.
Mögliches Duplikat genannt [Wie meinen benutzerdefinierten Typen machen arbeiten ?] (ht tps: //stackoverflow.com/questions/8164567/how-to-make-my-custom-type-to-work-with-range-based-for-loops) – Azeem