首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Int to small for string iteration using boost::string_ref

Int to small for string iteration using boost::string_ref
EN

Stack Overflow用户
提问于 2013-04-14 09:14:46
回答 1查看 354关注 0票数 0

我正在写一些类似于记号赋予器的东西。我想使用boost::string_ref返回"token values“。我希望遍历string_ref,逐个读取字符,然后返回包含值的子字符串。

让我们来看一个非常简约的例子:

代码语言:javascript
复制
string test = "testing string";
boost::string_ref rtest(test);

//-------- and now we can go this way --------
auto begin = rtest.begin();
auto end   = rtest.end();
for(/*something*/){
    process_char(*end); // print char
    end ++;
}
// how to return rtest(begin,end)?

// -------- or this way --------
int begin = 0;
int end   = 0;
for(/*something*/){
    process_char(rtest[end]);
    end++;
}
return rtest.substr(begin, end);

在代码中,有两种迭代字符串的方法:使用指针和使用int。指针的方式很好,但是没有办法在指针之间返回boost::string_ref.substr,第二个方法使用int,int可以处理一些数字,对于大的输入文件来说可能太小了。

那么,有没有可能以这种方式对大输入进行迭代呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-14 09:48:18

要返回给定两个指针的子字符串,请执行以下操作:

代码语言:javascript
复制
return boost::string_ref(begin, end-begin);

只需确保您的引用字符串存在于您要返回的作用域中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15994704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档