Как напечатать значения в мультимножестве?

Как получить доступ к значениям, хранящимся в структуре данных 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;
    }
Другие вопросы по тегам