hi,
wollte mich erstmal vorstellen, bin der et_schneid und mach ein wenig hobbymaessige cpp-programmierung; bin aber nicht so der crack, leider.
hab nun eine aufgabe, an der ich mir die zaehne ausbeisse; vielleicht habt ihr ja eine idee, wie ichs loesen kann (meine "antwort" auf die aufgabe steht weiter unten):
ok, hier die aufgabe:
Definieren Sie eine Klasse Punkt mit zwei int-Elementdaten, x und y.
Benutzen Sie den STL-container Vector, um eine Reihe Punkt-Objekte zu speichern.
Dafür muss von der Tastatur eine Reihe Paare x, y eingelesen werden.
Es ist nicht bekannt wie viel solcher Paare eingegeben werden. Benutzen Sie bei der Eingabe ein nicht-numerisches Zeichen als Abschlusskode.
Definieren Sie die Operatoren == und < für zwei Punkt-Objekte, wobei p<q die folgende Bedeutung hat:
p.x < q.x || (p.x == q.x && p.y < q.y)
Benutzen Sie den STL-Algorithmus sort, um die Reihe eingelesener Punkte zu sortieren und das laut den gerade definierten Sortier-Operator <.
[/PHP]
Und nun meine "Antwort" - leider unvollstaendig, liest nur einen wert ein und ueberlaedt die operatoren fuer sort nicht ... ka, wie man sowas macht...
[PHP]
#include <iostream>
#include <vector>
#include <algorithm>
#include <stdlib.h>
using namespace std;
class punt
{
private:
int x;
vector<int> v;
public:
void eingabe();
void sortieren();
void ausgabe();
};
void punt::eingabe() {
cout << "Gib was ein oder benutzt Du etwa AOL?\n";
while (cin >> x)
v.push_back(x);
};
void punt::sortieren() {
sort(v.begin(), v.end());
};
void punt::ausgabe() {
cout << "Sortiert sieht das so aus:\n";
int n = v.size();
for (int i=0; i<n; i++)
cout << v[i] << endl;
};
int main()
{
punt punkt;
punkt.eingabe();
while(!cin.fail())
{
punkt.eingabe();
};
punkt.sortieren();
punkt.ausgabe();
system("PAUSE");
};
kann mir mal jemand sagen, was ich falsch mache, bzw. wie ich meine loesung so erweitere, dass x und y im container gespeichert werden und ich diese sortieren kann (mit operatorenueberladung)?
vielen, vielen dank und gruss,
et_schneid