如何使用C++库中的boost::split?示例

2021年3月19日13:58:31 发表评论 800 次浏览

此功能类似于C中的strtok。输入序列被拆分为标记, 并由分隔符分隔。分隔符是通过谓词给出的。

语法如下:

Template:
split(Result, Input, PredicateT Pred);

Parameters:
Input: A container which will be searched.
Pred: A predicate to identify separators. 
This predicate is supposed to return true 
if a given element is a separator.
Result: A container that can hold copies of 
references to the substrings.

Returns: A reference the result

应用范围:它用于将字符串拆分为由分隔符分隔的子字符串。

例子:

Input : boost::split(result, input, boost::is_any_of("\t"))
       input = "geeks\tfor\tgeeks"
Output : geeks
        for
        geeks
Explanation: Here in input string we have "geeks\tfor\tgeeks"
and result is a container in which we want to store our result
here separator is "\t".
// C++ program to split
// string into substrings
// which are separated by
// separater using boost::split
  
// this header file contains boost::split function
#include <bits/stdc++.h>
#include <boost/algorithm/string.hpp>
using namespace std;
  
int main()
{
     string input( "geeks\tfor\tgeeks" );
     vector<string> result;
     boost::split(result, input, boost::is_any_of( "\t" ));
  
     for ( int i = 0; i < result.size(); i++)
         cout << result[i] << endl;
     return 0;
}

输出如下:

geeks
for
geeks

被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: