Так что я нашел этот код на здесь, что я работаю с:Добавление нескольких ints к одному векторному индексу? «Cout» не работает
#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
}
}
В принципе, я пытаюсь получить несколько Интс в один вектор индекса. cout
не работает, когда я пытаюсь распечатать содержимое вектора.
Прежде всего, я даже делаю это несколько раз подряд? Я относительно не знаком с C++.
И если я делаю это правильно, любые идеи относительно того, почему cout
не работает? Я также пробовал v.push_back({x,y})
, и это не сработало. Любая идея, что происходит с cout
? Большое спасибо.
EDIT: Спасибо большое до сих пор. У меня есть еще один вопрос. Если бы я должен был изменить свой код, чтобы принимать несколько входов, а затем хотел, чтобы все в векторе отсортировалось по «y» от самого большого к самому маленькому.
Пример (Original Vector Contents (х, у))
12 4 1 2 4 10 1 1 1 2
отсортированные по 'у' (от наибольшего к наименьшему)
4 10 12 4 1 2 1 2 1 1
Я знаю, как это сделать обычный сорт, но не один по второму числу (y). Как мне это сделать? Большое спасибо.
Спасибо вам большое. У меня есть еще один вопрос, но он не выглядит хорошо, когда я пишу его здесь (форматирование), поэтому я поставил его в свой вопрос как редактирование. Еще раз спасибо. –
@G_Man Читайте о ['std :: sort'] (http://en.cppreference.com/w/cpp/algorithm/sort). Он может принимать аргумент функции сравнения, который может сравнивать все, что вы хотите. Или вы можете специализировать ['std :: greater'] (http://en.cppreference.com/w/cpp/utility/functional/greater) для своей структуры и использовать' std :: greater' в качестве компаратора при вызове ' станд :: sort'. –