c++中set和multiset容器的区别和用法

当需要使用greater时,在头文件里需要添加#include

  1. #include

  2. #include

  3. #include

  4. #include

  5.  
  6. using namespace std;

  7.  
  8. int main()

  9. {

  10. vector data{1,4,3,8};

  11. //vector d1(data.begin()+1, data.begin() + 3);

  12. multiset > test;

  13. for (int i = 0; i < data.size(); i++)

  14. {

  15. test.insert(data[i]);

  16. }

  17. return 0;

  18. }


得到test的结果为 8,4,3,1。

所以,添加greater 会使得排序为降序排序。即更大的在前面。

一般不加第二个参数,会默认为是less,即按升序排序。

 

注意:multiset和set会对插入的元素进行自动排序,比如下面我使用set将0,10,8,9, 1, 5, 2插入,然后打印set,看出来的结果是,这说明set会对插入其中的元素进行自动排好序。

程序:

#include
#include
#include
#include
using namespace std;

int main()
{
    vectorinput_data1 = { 0,10,8,9,1,5,2};
    set>save1;

    vectorinput_data2{0,1,1,10,10,7,6,9,11,2};
    multiset>save2;

    for (vector::iterator it = input_data1.begin(); it != input_data1.end(); it++)
        save1.insert(*it);
    for (set>::iterator it = save1.begin(); it != save1.end(); ++it)
        cout << *it << " ";
    cout << endl;

    for (vector::iterator it = input_data2.begin(); it != input_data2.end(); it++)
        save2.insert(*it);
    for (set>::iterator it = save2.begin(); it != save2.end(); ++it)
        cout << *it << " ";
    cout << endl;
    system("pause");
    return 0;
}
 

c++中set和multiset容器的区别和用法_第1张图片

你可能感兴趣的:(C++)