| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:奇怪的现象
只看楼主 加入收藏
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
收藏
 问题点数:0 回复次数:7 
奇怪的现象
程序代码:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;




 bool isShorter (const string&s1,const string&s2)

 {
     return s1.size()<s2.size();

 }

 bool GT6(const string &s)

 {return s.size()>=6;}

 

 string make_plural(    size_t t, const string&word,const string&ending){
     
     return t==1?word:word+ending;

 }

 

 

 int main(){
    string x;
    vector<string>vec;
    while(cin>>x){
    vec.push_back(x);
        
    }
    sort(vec.end(),vec.end());
    vector<string>::iterator end_unique=
    unique(vec.begin(),vec.end());
    vec.erase(end_unique,vec.end());
    stable_sort(vec.begin(),vec.end(),isShorter);
    vector<string>::size_type wc=count_if(vec.begin(),vec.end(),GT6);
    cout<<wc<<" "<<make_plural(wc,"word","s")<<
    "6 characters or longer"<<endl;
    
    vector<string>::iterator it=vec.begin();
    for(;it!=vec.end();++it)
    cout<<*it<<" ";
    
    return 0; 
}

 

 




这段代码用于 删除输入文本中重复的单词 ,并统计出长度大于6的单词,最后按长度的顺序输出单词;
但是在最后按长度顺序输出时出现了问题。
我当输入 dd dd ddd ddd dddd dddd 时输出是 dd ddd dddd,符合预期的效果;
但是当我输入  dd ddd dddd dd ddd dddd时输出是dd dd ddd ddd dddd dddd,不符合预期的效果;

为什么当两个相同的相邻时,erase 起作用了。
不相邻时。erase 没有起作用。
2013-04-12 19:39
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
哟,看得挺快
已经看到算法了呀

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-12 19:45
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
sort(vec.end(),vec.end());
谁教的?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-12 19:47
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
回复 2楼 peach5460
>< 又在你面前丢人了。下次发帖绝对自己检查十遍!!
再问个小问题,
erase 操作后,防止失效是不是可以 重新定义一下 迭代器。
2013-04-12 19:54
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用未未来在2013-4-12 19:54:19的发言:

>< 又在你面前丢人了。下次发帖绝对自己检查十遍!!
再问个小问题,
erase 操作后,防止失效是不是可以 重新定义一下 迭代器。

定义个P啊
erase不是有返回值吗?

PS:你先去学一下怎么调试吧...
下次发帖之前确信自己调试没结果再发

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-12 19:56
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
又被我骂得人不见了
哎,我又傲娇了

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-12 21:13
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
以下是引用peach5460在2013-4-12 21:13:02的发言:

又被我骂得人不见了
哎,我又傲娇了

切,,我抗击能力强着呢,
 我有个程序调试出现了STL 什么东东,
我觉得是应该系统地去学学调试程序了TT
2013-04-12 22:31
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用未未来在2013-4-12 22:31:27的发言:

 
切,,我抗击能力强着呢,  
 我有个程序调试出现了STL 什么东东,
我觉得是应该系统地去学学调试程序了TT

学吧,学吧...快去学吧...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-13 06:37
快速回复:奇怪的现象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025846 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved