STL 里面 find 功能可否指定成功 find n次之后停止, 并将最后一次find的位置返回.

gddsky 2003-05-08 03:21:58
谢谢, STL不熟悉只能来这里散分了.
SORRY.
...全文
13 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gddsky 2003-05-08
#include <string>
#include <iostream>

bool find_num( char c )
{
static int sum = 0;
if( c == '\n' )
{
if( ++sum > 4 )
{
sum = 0;
return true;
}
}
return false;
}

void main( void )
{
string test1 = "1 line.\n2 line.\n3 line.\n4 line.\n5 line.\n6 line.\n";
string::iterator result = find_if( test1.begin(), test1.end(), find_num );
result++;
cout << "find ok (num = 4), followed char is: " << *result << endl;
}

// 大至情况是如此, 虽然有点不如意的地方( ok num 可调的实现须要另外自己写方法来实现 )
回复
wingfiring 2003-05-08
怎么会降低效率呢?不会有明显影响的。
也可以用find_if来代替。
回复
HF 2003-05-08
重写find如何?
回复
gddsky 2003-05-08
如此做效率就会低了, 像这种find的函数, 对效率的要求都是比较高的...
尽可能的情况当然是去使用现有的功能了...
回复
liu_feng_fly 2003-05-08
好象不可以。
不过,你可以多次调用find函数来达到这个效果
回复
相关推荐
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2003-05-08 03:21
社区公告
暂无公告