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

📄 split.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
//  Boost string_algo library split.hpp header file  ---------------------------////  Copyright Pavol Droba 2002-2006.//// Distributed under 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.#ifndef BOOST_STRING_SPLIT_HPP#define BOOST_STRING_SPLIT_HPP#include <boost/algorithm/string/config.hpp>#include <boost/algorithm/string/iter_find.hpp>#include <boost/algorithm/string/finder.hpp>#include <boost/algorithm/string/compare.hpp>/*! \file    Defines basic split algorithms.     Split algorithms can be used to divide a string    into several parts according to given criteria.        Each part is copied and added as a new element to the    output container.    Thus the result container must be able to hold copies    of the matches (in a compatible structure like std::string) or    a reference to it (e.g. using the iterator range class).    Examples of such a container are \c std::vector<std::string>    or \c std::list<boost::iterator_range<std::string::iterator>>*/namespace boost {    namespace algorithm {//  find_all  ------------------------------------------------------------//        //! Find all algorithm        /*!            This algorithm finds all occurrences of the search string            in the input.                        Each part is copied and added as a new element to the            output container.            Thus the result container must be able to hold copies            of the matches (in a compatible structure like std::string) or            a reference to it (e.g. using the iterator range class).            Examples of such a container are \c std::vector<std::string>            or \c std::list<boost::iterator_range<std::string::iterator>>            \param Result A container that can hold copies of references to the substrings            \param Input A container which will be searched.            \param Search A substring to be searched for.            \return A reference the result            \note Prior content of the result will be overwritten.            \note This function provides the strong exception-safety guarantee        */        template< typename SequenceSequenceT, typename Range1T, typename Range2T >        inline SequenceSequenceT& find_all(            SequenceSequenceT& Result,            Range1T& Input,            const Range2T& Search)        {            return iter_find(                Result,                Input,                first_finder(Search) );                }        //! Find all algorithm ( case insensitive )         /*!            This algorithm finds all occurrences of the search string            in the input.             Each part is copied and added as a new element to the            output container. Thus the result container must be able to hold copies            of the matches (in a compatible structure like std::string) or            a reference to it (e.g. using the iterator range class).            Examples of such a container are \c std::vector<std::string>            or \c std::list<boost::iterator_range<std::string::iterator>>            Searching is case insensitive.            \param Result A container that can hold copies of references to the substrings            \param Input A container which will be searched.            \param Search A substring to be searched for.            \param Loc A locale used for case insensitive comparison            \return A reference the result            \note Prior content of the result will be overwritten.            \note This function provides the strong exception-safety guarantee        */        template< typename SequenceSequenceT, typename Range1T, typename Range2T >        inline SequenceSequenceT& ifind_all(            SequenceSequenceT& Result,            Range1T& Input,            const Range2T& Search,            const std::locale& Loc=std::locale() )        {            return iter_find(                Result,                Input,                first_finder(Search, is_iequal(Loc) ) );                }//  tokenize  -------------------------------------------------------------//        //! Split algorithm        /*!             Tokenize expression. This function is equivalent to C strtok. Input            sequence is split into tokens, separated by separators. Separators             are given by means of the predicate.            Each part is copied and added as a new element to the            output container.            Thus the result container must be able to hold copies            of the matches (in a compatible structure like std::string) or            a reference to it (e.g. using the iterator range class).            Examples of such a container are \c std::vector<std::string>            or \c std::list<boost::iterator_range<std::string::iterator>>                \param Result A container that can hold copies of references to the substrings                      \param Input A container which will be searched.            \param Pred A predicate to identify separators. This predicate is                 supposed to return true if a given element is a separator.            \param eCompress If eCompress argument is set to token_compress_on, adjacent                 separators are merged together. Otherwise, every two separators                delimit a token.            \return A reference the result            \note Prior content of the result will be overwritten.            \note This function provides the strong exception-safety guarantee        */        template< typename SequenceSequenceT, typename RangeT, typename PredicateT >        inline SequenceSequenceT& split(            SequenceSequenceT& Result,            RangeT& Input,            PredicateT Pred,            token_compress_mode_type eCompress=token_compress_off )        {            return iter_split(                Result,                Input,                token_finder( Pred, eCompress ) );                 }    } // namespace algorithm    // pull names to the boost namespace    using algorithm::find_all;    using algorithm::ifind_all;    using algorithm::split;    } // namespace boost#endif  // BOOST_STRING_SPLIT_HPP

⌨️ 快捷键说明

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