Also habe ich diesen Code gefunden hier, das ich arbeite mit:Mehrere Ints zu einem Vektorindex hinzufügen? ‚Cout‘ nicht funktioniert
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
struct Something{
int x;
int y;
};
int main()
{
vector <Something> v;
int x, y;
cin >> x >> y;
Something temp;
temp.x = x;
temp.y = y;
v.push_back(temp);
for (size_t i = 0; i < v.size(); i++)
{
cout << v[i] << endl; // Error: No operator "<<" matches these operands. Operand types are std::ostream << Something
}
}
Grundsätzlich versuche ich mehrere Ints in einen Vektorindex zu erhalten. cout
funktioniert nicht, wenn ich versuche, den Inhalt des Vektors zu drucken.
Zunächst einmal, mache ich diese multiple Int Sache überhaupt richtig? Ich bin relativ neu in C++.
Und wenn ich das richtig mache, irgendwelche Ideen, warum cout
funktioniert nicht? Ich habe auch versucht v.push_back({x,y})
und das hat nicht funktioniert. Irgendeine Idee was mit cout
los ist? Danke vielmals.
EDIT: Vielen Dank so weit. Ich habe nur noch eine Frage. Wenn ich meinen Code modifizieren würde, um mehrere Eingaben zu machen und später alles im Vektor nach "y" sortieren wollte, von der größten zur kleinsten.
Beispiel (Original-Vektor-Inhalt (x, y))
12 4 1 2 4 10 1 1 1 2
Sortiert nach 'y' (der größten zur kleinsten)
4 10 12 4 1 2 1 2 1 1
Ich weiß, wie ein tun normale Sortierung, aber keine zweite Nummer (y). Wie mache ich das? Danke vielmals.
Vielen Dank bis jetzt. Ich habe nur eine weitere Frage, aber es sieht nicht gut aus, wenn ich es hier schreibe (Formatierung), also habe ich es in meine Frage als Bearbeitung eingefügt. Danke noch einmal. –
@G_Man Lesen Sie über ['std :: sort'] (http://en.cppreference.com/w/cpp/algorithm/sort). Es kann ein Vergleichsfunktionsargument enthalten, das alles vergleichen kann, was Sie wollen. Oder Sie könnten ['std :: greater'] (http://en.cppreference.com/w/cpp/utility/functional/greater) für Ihre Struktur spezialisieren und' std :: greater' als Vergleicher verwenden, wenn Sie 'aufrufen std :: sort'. –