⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiset_test.cpp

📁 stl的源码
💻 CPP
字号:
#include <set>#include <functional>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class MultisetTest : public CPPUNIT_NS::TestCase{  typedef multiset<int, less<int> > mset;  CPPUNIT_TEST_SUITE(MultisetTest);  CPPUNIT_TEST(mset1);  CPPUNIT_TEST(mset3);  CPPUNIT_TEST(mset5);  CPPUNIT_TEST_SUITE_END();protected:  void mset1();  void mset3();  void mset5();  static bool less_than(int a_, int b_)  {    return a_ < b_;  }  static bool greater_than(int a_, int b_)  {    return a_ > b_;  }};CPPUNIT_TEST_SUITE_REGISTRATION(MultisetTest);//// tests implementation//void MultisetTest::mset1(){  mset s;  CPPUNIT_ASSERT(s.count(42) == 0);  s.insert(42);  CPPUNIT_ASSERT(s.count(42) == 1);  s.insert(42);  CPPUNIT_ASSERT(s.count(42) == 2);  mset::iterator i = s.find(40);  CPPUNIT_ASSERT(i == s.end());  i = s.find(42);  CPPUNIT_ASSERT(i != s.end());  size_t count = s.erase(42);  CPPUNIT_ASSERT(count == 2);}void MultisetTest::mset3(){  int array [] = { 3, 6, 1, 2, 3, 2, 6, 7, 9 };  //Check iterator on a mutable set  mset s(array, array + 9);  mset::iterator i;  i = s.lower_bound(3);  CPPUNIT_ASSERT(*i == 3);  i = s.upper_bound(3);  CPPUNIT_ASSERT(*i == 6);  pair<mset::iterator, mset::iterator> p = s.equal_range(5);  CPPUNIT_ASSERT(*(p.first) == 6);  CPPUNIT_ASSERT(*(p.second) == 6);  //Check const_iterator on a mutable multiset  mset::const_iterator ci;  ci = s.lower_bound(3);  CPPUNIT_ASSERT(*ci == 3);  ci = s.upper_bound(3);  CPPUNIT_ASSERT(*ci == 6);  pair<mset::const_iterator, mset::const_iterator> cp;#ifdef _STLP_MEMBER_TEMPLATES  cp = s.equal_range(5);  CPPUNIT_ASSERT(*(cp.first) == 6);  CPPUNIT_ASSERT(*(cp.second) == 6);#endif  //Check const_iterator on a const multiset  mset const& crs = s;  ci = crs.lower_bound(3);  CPPUNIT_ASSERT(*ci == 3);  ci = crs.upper_bound(3);  CPPUNIT_ASSERT(*ci == 6);  cp = crs.equal_range(5);  CPPUNIT_ASSERT(*(cp.first) == 6);  CPPUNIT_ASSERT(*(cp.second) == 6);}void MultisetTest::mset5(){  int array [] = { 3, 6, 1, 9 };  int j;  typedef pointer_to_binary_function<int, int, bool> fn_type;  typedef multiset<int, fn_type, allocator<int> > fn_mset;  fn_type f(less_than);  fn_mset s1(array+0, array + 4 , f );  fn_mset::const_iterator i = s1.begin();  for (j = 0; i != s1.end(); ++i, ++j) {    CPPUNIT_ASSERT(j != 0 || *i == 1);    CPPUNIT_ASSERT(j != 1 || *i == 3);    CPPUNIT_ASSERT(j != 2 || *i == 6);    CPPUNIT_ASSERT(j != 3 || *i == 9);  }  fn_type g(greater_than);  fn_mset s2(array, array + 4, g);  i = s2.begin();  for (j = 0; i != s2.end(); ++i, ++j) {    CPPUNIT_ASSERT(j != 0 || *i == 9);    CPPUNIT_ASSERT(j != 1 || *i == 6);    CPPUNIT_ASSERT(j != 2 || *i == 3);    CPPUNIT_ASSERT(j != 3 || *i == 1);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -