int main()
{
list<char> letters;
priority_queue<char, vector<char>, less<char>>letters_trans;
cout << "Enter some sentence: " << endl << endl;
std::istream_iterator<char> input(cin), input_end;
copy(input, input_end, back_inserter<list<char>>(letters));
for each(char letter in letters)
{
letters_trans.push(letter);
}
while(!letters_trans.empty())
{
cout << letters_trans.top();
letters_trans.pop();
}
cout << endl;
getch();
return 0;
}
Итератор приоритета и потока ввода
Итак, вы можете видеть, что у меня есть школьный проект для переноса cin в очередь приоритетов. Ну, я «сделал это» ... Что я сделал, это ввести istream_iterator, чтобы перечислить
, а затем в priority_queue, что очень неэффективно. Думаю, в долгосрочной перспективе. Так есть способ перенести напрямую cin на priority_queue без среднего человека .. Я пытался делать это, но функция копирования обыкновение позвольте мне иметь priority_queue как arguement
Почему промежуточный вектор? Очередь приоритетов может быть построена непосредственно из пары входных итераторов. –
@AlanStokes: Действительно, я пропустил этот конструктор. Исправлено, спасибо! –