Существует список предметов и атрибутов.C++ сортировать элементы по атрибутам
struct Item { double a, b; Item (double a_, double b_): a(a_), b(b_){}};
typedef std::vector <Item> TItems;
typedef std::vector <double> TAttributes;
Я пытаюсь сортировать элементы по атрибутам, используя список пар:
int main(int argc, char* argv[])
{
TItems items;
items.push_back(Item (1.0, 2.0));
items.push_back(Item (3.0, 4.0));
items.push_back(Item (5.0, 6.0));
TAttributes attributes;
attributes.push_back(8);
attributes.push_back(7);
attributes.push_back(9);
std::pair <TAttributes, TItems> pairs;
//No element has been coppied
std::copy (pairs.first.begin(), pairs.first.end(), std::back_inserter (attributes));
//No element has been coppied
std::copy (pairs.second.begin(), pairs.second.end(), std::back_inserter (items));
std::sort (pairs.first.begin(), pairs.first.end());
}
Есть 2 проблемы:
A] непригодны реализация копирования (без ellement не было coppied)
B] тоже "привинченный" код.
Есть ли еще более простой способ сортировки списка элементов с использованием другого списка атрибутов?
Как правильно выполнить операцию копирования?
Не могли бы вы перефразировать «проблемы»? Что вы пытаетесь сделать, и в чем проблема? –