Как напечатать значения в мультимножестве?
Как получить доступ к значениям, хранящимся в структуре данных multiset, C++?
for (int i = 0; i < mlt.size; i++)
{
cout << mlt[i];
}
4 ответа
Если T
это тип, содержащийся в вашем мультимножестве,
for (std::multiset<T>::const_iterator i(mlt.begin()), end(mlt.end());
i != end;
++i)
std::cout << *i << "\n";
Посмотрите на этот пример: http://www.cplusplus.com/reference/stl/multiset/begin/
По сути, вы можете перебирать мультимножество так же, как и через любой другой контейнер stl.
Вы не должны (обычно) делать это, написав цикл. Вы должны обычно использовать заранее написанный алгоритм, такой как std::copy
:
std::copy(mlt.begin(), mlt.end(),
std::ostream_iterator<T>(std::cout, "\n"));
В зависимости от ситуации может быть полезно несколько вариантов, например, использование infix_ostream_iterator
Я отправил в предыдущем ответе. Это полезно в первую очередь, когда вы хотите разделить элементы в списке, чтобы получить (например) 1,2,3,4,5
а не 1,2,3,4,5,
что ostream_iterator
будет производить.
Авто для C++11 это удобство.
for(auto t : mlt){
cout << t << endl;
}