1

如何访问存储在数据结构 multiset、C++ 中的值?

for (int i = 0; i < mlt.size; i++)
{
cout << mlt[i];
}
4

4 回答 4

5

如果T是您的多重集中包含的类型,

for (std::multiset<T>::const_iterator i(mlt.begin()), end(mlt.end());
     i != end;
     ++i)
    std::cout << *i << "\n";
于 2011-07-17T15:10:48.930 回答
4

看这个例子:http ://www.cplusplus.com/reference/stl/multiset/begin/

基本上,您可以像遍历任何其他 stl 容器一样遍历多重集。

于 2011-07-17T15:09:20.003 回答
2

您不应该通常)通过编写循环来这样做。您通常应该使用预先编写的算法,例如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,anostream_iterator将产生的。

于 2011-07-17T15:18:54.217 回答
1

C++11 的 auto 很方便。

   for(auto t : mlt){
        cout << t << endl;
    }
于 2016-06-24T12:05:18.897 回答