Здравствуйте, _DAle_, Вы писали:
_DA>Я так понял, что не каждый с каждым, а сложить соответствующие элементы векторов.
C>>C>> std::transform (v1.begin(), v1.end(),
C>> v2.begin(), v1.begin(),
C>> std::plus<S>());
C>>
_DA>Ну вместо transform лучше использовать merge, мне кажется, в данном случае.
я впринципе и сделал изначально с transform, но мне не очень понравилось
_DA>Предлагаю завести map<T, int>, проитерироваться по списку, сбрасывая все в map, а потом построить новый list по полученному map'у. Если же enum никогда изменяться не будет (но вообще, лучше не делать таких предположений обычно), можно вместо map'a воспользоваться vector<int>.
ну во-первых то пример сверху довольно простой (был приведен для наглядности). и не совсем понят по чему
индексироваться в списке
во-вторых что произойдет с объектом если его помещать в map а там уже есть такой (неужели вызовется оператор +=)
_DA>Тут на самом деле не совсем понятно, что надо сделать. Предлагаю тоже самое, сначала забрасываем в map первый список, потом выборочно (проверяем, если такой элемент в map'е) забрасываем в map второй вместе с удалением забрасываемых элементов из самого списка.
что-то не совсем понятно как это сделать
также возникает сложность при модификации списка (т.к. итераторы становятся не действительными)