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

📄 split_test.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
//  Boost string_algo library iterator_test.cpp file  ---------------------------////  Copyright Pavol Droba 2002-2003. Use, modification and//  distribution is subject to the Boost Software License, Version//  1.0. (See accompanying file LICENSE_1_0.txt or copy at//  http://www.boost.org/LICENSE_1_0.txt)//  See http://www.boost.org for updates, documentation, and revision history.#include <boost/algorithm/string/split.hpp>#include <boost/algorithm/string/classification.hpp>// equals predicate is used for result comparison#include <boost/algorithm/string/predicate.hpp>// Include unit test framework#include <boost/test/included/test_exec_monitor.hpp>#include <string>#include <vector>#include <iostream>#include <boost/test/test_tools.hpp>using namespace std;using namespace boost;template< typename T1, typename T2 >void deep_compare( const T1& X, const T2& Y ){    BOOST_REQUIRE( X.size() == Y.size() );    for( unsigned int nIndex=0; nIndex<X.size(); ++nIndex )    {        BOOST_CHECK( equals( X[nIndex], Y[nIndex] ) );    }}void iterator_test(){    string str1("xx-abc--xx-abb");    string str2("Xx-abc--xX-abb-xx");    string str3("xx");    const char* pch1="xx-abc--xx-abb";    vector<string> tokens;    vector< vector<int> > vtokens;    // find_all tests    find_all(        tokens,        pch1,        "xx" );    BOOST_REQUIRE( tokens.size()==2 );    BOOST_CHECK( tokens[0]==string("xx") );    BOOST_CHECK( tokens[1]==string("xx") );    ifind_all(        tokens,        str2,        "xx" );    BOOST_REQUIRE( tokens.size()==3 );    BOOST_CHECK( tokens[0]==string("Xx") );    BOOST_CHECK( tokens[1]==string("xX") );    BOOST_CHECK( tokens[2]==string("xx") );    find_all(        tokens,        str1,        "xx" );    BOOST_REQUIRE( tokens.size()==2 );    BOOST_CHECK( tokens[0]==string("xx") );    BOOST_CHECK( tokens[1]==string("xx") );    find_all(        vtokens,        str1,        string("xx") );    deep_compare( tokens, vtokens );    // split tests    split(        tokens,        str2,        is_any_of("xX"),        token_compress_on );    BOOST_REQUIRE( tokens.size()==4 );    BOOST_CHECK( tokens[0]==string("") );    BOOST_CHECK( tokens[1]==string("-abc--") );    BOOST_CHECK( tokens[2]==string("-abb-") );    BOOST_CHECK( tokens[3]==string("") );    split(        tokens,        pch1,        is_any_of("x"),        token_compress_on );    BOOST_REQUIRE( tokens.size()==3 );    BOOST_CHECK( tokens[0]==string("") );    BOOST_CHECK( tokens[1]==string("-abc--") );    BOOST_CHECK( tokens[2]==string("-abb") );    split(        vtokens,        str1,        is_any_of("x"),        token_compress_on );    deep_compare( tokens, vtokens );    split(        tokens,        str1,        is_punct(),        token_compress_off );    BOOST_REQUIRE( tokens.size()==5 );    BOOST_CHECK( tokens[0]==string("xx") );    BOOST_CHECK( tokens[1]==string("abc") );    BOOST_CHECK( tokens[2]==string("") );    BOOST_CHECK( tokens[3]==string("xx") );    BOOST_CHECK( tokens[4]==string("abb") );    find_iterator<string::iterator> fiter=make_find_iterator(str1, first_finder("xx"));    BOOST_CHECK(equals(*fiter, "xx"));    ++fiter;    BOOST_CHECK(equals(*fiter, "xx"));    ++fiter;    BOOST_CHECK(fiter==find_iterator<string::iterator>());    split_iterator<string::iterator> siter=make_split_iterator(str1, token_finder(is_any_of("-"), token_compress_on));    BOOST_CHECK(equals(*siter, "xx"));    ++siter;    BOOST_CHECK(equals(*siter, "abc"));    ++siter;    BOOST_CHECK(equals(*siter, "xx"));    ++siter;    BOOST_CHECK(equals(*siter, "abb"));    ++siter;    BOOST_CHECK(siter==split_iterator<string::iterator>());}// test main int test_main( int, char*[] ){    iterator_test();        return 0;}

⌨️ 快捷键说明

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