首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

find_if 和find找一个空串的结果解决思路

2012-03-25 
find_if 和find找一个空串的结果C/C++ codeint main(){int const n6char* s[6]{xgdg, ,hello,wo

find_if 和find找一个空串的结果

C/C++ code
int main(){int const n=6;char* s[6]={"xgdg"," ","hello","wordle"," ",""};vector<char*> coll;coll.reserve(10);for( int i=0;i<n; i++){    coll.push_back(s[i]);}vector<char*>:: const_iterator iter;copy(coll.begin(), coll.end(), ostream_iterator<char*>(cout," "));cout<<endl;iter=find_if(coll.begin(),coll.end(), bind2nd(ptr_fun(strcmp),"") );cout<<*iter<<endl; //结果是xgdg}




iter=find(coll.begin(),coll.end(), "" ); //*iiter的结果是""

这是怎么回事???




[解决办法]
LZ这个代码当然是返回第一个了

bind2nd绑定第二个参数,即:
strcmp(xx, "")

第一个参数传入上面的xx,整个会返回 >0 的数,当然被find_if立即返回了
[解决办法]
C/C++ code
iter=find_if(coll.begin(),coll.end(), not1(bind2nd(ptr_fun(strcmp),"")) ); 

热点排行