13.3.2 multiset容器

    使用multiset同样需要包含头文件<set>,multiset的创建方式与set相同,有3种方式。multiset与set不同之处在于其允许出现相同的元素,以下所示代码13.8是代码13.7的修改版本。

    代码13.8 multiset的创建和元素访问CreateAndMultisetContainer


    <————————————文件名:example1308.cpp——————————————-> 01 #include<iostream> 02 #include<set>//使用multiset必须包括此头文件 03 using namespace std; 04 int main() 05 { 06 int sz[9]={2,1,3,5,4,6,3,5,6};//定义int型数组,数组名相当于指针(迭代器) 07 multiset<int>A(sz,sz+9);//将迭代器区间作为参数创建容器对象A 08 cout<<A. size()<<endl;//输出A中元素个数 09 multiset<int>:iterator it=A. begin();//创建multiset<int>:iterator迭代器it,指向A头部 10 while(it!=A. end())//输出全部元素 11 { 12 cout<<(*it)<<""; 13 it++; 14 } 15 cout<<endl; 16 return 0; 17 }

    输出结果如下所示。


    9 1 2 3 3 4 5 5 6 6

    【代码解析】代码的输出结果很明显地指出了multiset和set的不同,代码第7行的语句“multiset<int>A(sz,sz+9)”创建multiset<int>型容器对象A。multiset允许有相同的关键字,因此A中的元素个数为9,但是在创建A时,还是对9个元素进行了排序。