Здравствуйте, <Аноним>, Вы писали:
А>Такое не возможно. За каждым <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>>