Re[3]: сортированный вектор
От: Кодт Россия  
Дата: 15.11.07 11:05
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Такое не возможно. За каждым <value> однозначно закреплено <name>


В таком случае тебе нужно
1) отсортировать пары (value,name) по value
2) убедиться, что все name уникальны (можно просто поверить пользователю на слово )
3) пробежаться по коллекции и вывести name

#include <map>
#include <algorithm>
#include <iterator>
#include <sstream>
using namespace std;

struct parse_pair
{
    pair<int,string> operator()(string const& src) const
    {
        istringstream stm(src);
        int value; string name;
        stm >> value >> name;
        return make_pair(value,name);
    }
};

struct get_second
{
    template<class Pair>
    typename Pair::second_type operator()(Pair const& p) const
    {
        return p.second;
    }
};

int main()
{
    map<int,string> dataset; // сортировать будем прямо в момент вставки
    transform(istream_iterator<string>(cin), istream_iterator<string>(), inserter(dataset, dataset.begin()), parse_pair());
    transform(dataset.begin(), dataset.end(), ostream_iterator<string>(cout," "), get_second());
}
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.