reviter_test.cpp

来自「stl的源码」· C++ 代码 · 共 73 行

CPP
73
字号
#include <vector>#include <list>#include <algorithm>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class ReviterTest : public CPPUNIT_NS::TestCase{  CPPUNIT_TEST_SUITE(ReviterTest);  CPPUNIT_TEST(reviter1);  CPPUNIT_TEST(reviter2);  CPPUNIT_TEST(revbit1);  CPPUNIT_TEST_SUITE_END();protected:  void reviter1();  void reviter2();  void revbit1();};CPPUNIT_TEST_SUITE_REGISTRATION(ReviterTest);//// tests implementation//void ReviterTest::reviter1(){  int array [] = { 1, 5, 2, 3 };  vector<int> v(array, array + 4);  typedef vector<int>::reverse_iterator reviter;  reviter r(v.rend());  r--;  CPPUNIT_ASSERT(*r-- == 1);  CPPUNIT_ASSERT(*r-- == 5);  CPPUNIT_ASSERT(*r-- == 2);  CPPUNIT_ASSERT(*r == 3);  CPPUNIT_ASSERT(r==v.rbegin());}void ReviterTest::reviter2(){  int array [] = { 1, 5, 2, 3 };  vector<int> v(array, array + 4);  vector<int>::reverse_iterator r;  r = v.rbegin();  CPPUNIT_ASSERT(*r++ == 3);  CPPUNIT_ASSERT(*r++ == 2);  CPPUNIT_ASSERT(*r++ == 5);  CPPUNIT_ASSERT(*r++ == 1);  CPPUNIT_ASSERT(r==v.rend());}void ReviterTest::revbit1(){  int array [] = { 1, 5, 2, 3 };  list<int> v(array, array + 4);  list<int>::reverse_iterator r(v.rbegin());  CPPUNIT_ASSERT(*r++ == 3);  CPPUNIT_ASSERT(*r++ == 2);  CPPUNIT_ASSERT(*r++ == 5);  CPPUNIT_ASSERT(*r++ == 1);  CPPUNIT_ASSERT(r==v.rend());}

⌨️ 快捷键说明

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