C++ 03 添加于 Boost 1.23.0
本次发布
依赖项
Boost.Tokenizer
Boost.Tokenizer 是 Boost C++ 库的一部分。Boost.Tokenizer 包提供了一种灵活易用的方法来将字符串或其他字符序列分解成一系列标记。
License
根据 Boost Software License, Version 1.0 分发。
属性
- C++03
- 仅头文件
构建状态
分支 | GHA CI | Appveyor | Coverity Scan | codecov.io | 依赖 | 文档 | 测试 |
---|---|---|---|---|---|---|---|
master |
|||||||
develop |
概述
将短语分解成单词。
#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>
int main(){
std::string s = "This is, a test";
typedef boost::tokenizer<> Tok;
Tok tok(s);
for (Tok::iterator beg = tok.begin(); beg != tok.end(); ++beg){
std::cout << *beg << "\n";
}
}
使用基于范围的 for 循环 (C++11 或更高版本)
#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>
int main(){
std::string s = "This is, a test";
boost::tokenizer<> tok(s);
for (auto token: tok) {
std::cout << token << "\n";
}
}
相关材料
Boost.Tokenizer,theboostcpplibraries.com 上的第 10 章,包含几个示例,包括 **escaped_list_separator**。
致谢
来自作者
我想感谢 boost 邮件列表的成员,他们在开发和正式审查期间的评论、赞扬和批评都帮助 Tokenizer 库成为了今天的样子。我特别想感谢 Aleksey Gurtovoy 的想法,即使用一对迭代器来指定输入,而不是使用字符串。我还想感谢 Jeremy Siek 的想法,即为 token 迭代器提供一个容器接口,并简化 TokenizerFunctions 的模板参数。他和 Daryle Walker 也强调了将接口与实现分离的必要性。Gary Powell 启发了我使用 isspace 和 ispunct 作为 char_delimiters_separator 的默认值。Jeff Garland 提供了关于如何更改模板参数顺序的想法,以使 tokenizer 更易于声明。感谢 Douglas Gregor,他担任了审查经理,并在 boost 列表和电子邮件中提供了许多关于如何完善 Tokenizer 的实现和演示的见解。最后,感谢 Beman Dawes 将最终版本集成到 boost 发行版中。
目录
名称 | 目的 |
---|---|
example |
示例 |
include |
header |
测试 |
单元测试 |
更多信息
- 提问
- 报告错误:请务必提及您使用的 Boost 版本、平台和编译器。一个可编译的小代码示例来重现问题总是有帮助的。
- 请将您的补丁作为拉取请求提交到 develop 分支。请注意,提交补丁即表示您同意根据 Boost Software License, Version 1.0 许可您的修改。
- 有关该库的讨论在 Boost 开发者邮件列表上进行。发布前请务必阅读 讨论政策,并在主题行的开头添加
[tokenizer]
标签。