Home | History | Annotate | Download | only in multimap.special
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <map>
     11 
     12 // class multimap
     13 
     14 // void swap(multimap& m);
     15 
     16 #include <map>
     17 #include <cassert>
     18 
     19 int main()
     20 {
     21     typedef std::pair<const int, double> V;
     22     typedef std::multimap<int, double> M;
     23     {
     24         V ar1[] =
     25         {
     26         };
     27         V ar2[] =
     28         {
     29         };
     30         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
     31         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
     32         M m1_save = m1;
     33         M m2_save = m2;
     34         m1.swap(m2);
     35         assert(m1 == m2_save);
     36         assert(m2 == m1_save);
     37     }
     38     {
     39         V ar1[] =
     40         {
     41         };
     42         V ar2[] =
     43         {
     44             V(5, 5),
     45             V(6, 6),
     46             V(7, 7),
     47             V(8, 8),
     48             V(9, 9),
     49             V(10, 10),
     50             V(11, 11),
     51             V(12, 12)
     52         };
     53         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
     54         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
     55         M m1_save = m1;
     56         M m2_save = m2;
     57         m1.swap(m2);
     58         assert(m1 == m2_save);
     59         assert(m2 == m1_save);
     60     }
     61     {
     62         V ar1[] =
     63         {
     64             V(1, 1),
     65             V(2, 2),
     66             V(3, 3),
     67             V(4, 4)
     68         };
     69         V ar2[] =
     70         {
     71         };
     72         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
     73         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
     74         M m1_save = m1;
     75         M m2_save = m2;
     76         m1.swap(m2);
     77         assert(m1 == m2_save);
     78         assert(m2 == m1_save);
     79     }
     80     {
     81         V ar1[] =
     82         {
     83             V(1, 1),
     84             V(2, 2),
     85             V(3, 3),
     86             V(4, 4)
     87         };
     88         V ar2[] =
     89         {
     90             V(5, 5),
     91             V(6, 6),
     92             V(7, 7),
     93             V(8, 8),
     94             V(9, 9),
     95             V(10, 10),
     96             V(11, 11),
     97             V(12, 12)
     98         };
     99         M m1(ar1, ar1+sizeof(ar1)/sizeof(ar1[0]));
    100         M m2(ar2, ar2+sizeof(ar2)/sizeof(ar2[0]));
    101         M m1_save = m1;
    102         M m2_save = m2;
    103         m1.swap(m2);
    104         assert(m1 == m2_save);
    105         assert(m2 == m1_save);
    106     }
    107 }
    108