insert_test.cpp

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

CPP
71
字号
#include <deque>#include <vector>#include <algorithm>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class InsertTest : public CPPUNIT_NS::TestCase{  CPPUNIT_TEST_SUITE(InsertTest);  CPPUNIT_TEST(insert1);  CPPUNIT_TEST(insert2);  CPPUNIT_TEST_SUITE_END();protected:  void insert1();  void insert2();};CPPUNIT_TEST_SUITE_REGISTRATION(InsertTest);//// tests implementation//void InsertTest::insert1(){  char const* array1 [] = { "laurie", "jennifer", "leisa" };  char const* array2 [] = { "amanda", "saskia", "carrie" };  deque<char const*> names(array1, array1 + 3);  deque<char const*>::iterator i = names.begin() + 2;  insert_iterator<deque <char const*> > itd(names, i);  itd = copy(array2, array2 + 3, insert_iterator<deque <char const*> >(names, i));  CPPUNIT_ASSERT( !strcmp(names[0], "laurie") );  CPPUNIT_ASSERT( !strcmp(names[1], "jennifer") );  CPPUNIT_ASSERT( !strcmp(names[2], "amanda") );  CPPUNIT_ASSERT( !strcmp(names[3], "saskia") );  CPPUNIT_ASSERT( !strcmp(names[4], "carrie") );  CPPUNIT_ASSERT( !strcmp(names[5], "leisa") );  copy(array1, array1 + 3, itd);  CPPUNIT_ASSERT( !strcmp(names[5], "laurie") );  CPPUNIT_ASSERT( !strcmp(names[6], "jennifer") );  CPPUNIT_ASSERT( !strcmp(names[7], "leisa") );  CPPUNIT_ASSERT( !strcmp(names[8], "leisa") );}void InsertTest::insert2(){  char const* array1 [] = { "laurie", "jennifer", "leisa" };  char const* array2 [] = { "amanda", "saskia", "carrie" };  deque<char const*> names(array1, array1 + 3);  deque<char const*>::iterator i = names.begin() + 2;  copy(array2, array2 + 3, inserter(names, i));  CPPUNIT_ASSERT( !strcmp(names[0], "laurie") );  CPPUNIT_ASSERT( !strcmp(names[1], "jennifer") );  CPPUNIT_ASSERT( !strcmp(names[2], "amanda") );  CPPUNIT_ASSERT( !strcmp(names[3], "saskia") );  CPPUNIT_ASSERT( !strcmp(names[4], "carrie") );  CPPUNIT_ASSERT( !strcmp(names[5], "leisa") );}

⌨️ 快捷键说明

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