| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 637 人关注过本帖, 1 人收藏
标题:請高手賜教
取消只看楼主 加入收藏
庫仔
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-11
收藏(1)
 问题点数:0 回复次数:0 
請高手賜教
怎樣改寫才可以使得程序可以檢測多次出現的相同編號,并且对这个行編號只插入一次


#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
#include <map>
#include <cctype>

using namespace std;

vector<string> split(const string&s)     //分割單詞
{
    vector<string> ret;
    typedef string::size_type string_size;
    string_size i=0;
   
    while(i!=s.size()){
        while(i!=s.size() && isspace(s[i]))
          ++i;
        
        string_size j=i;
        while(j!=s.size() && !isspace(s[j]))
          ++j;
         
        if(i!=j){
          ret.push_back(s.substr(i,j-i));
          i=j;
        }
    }      
    return ret;
}




map<string,vector<int> > xref(istream& in,vector<string> find_words(const string&)=split)
{
    string line;
    int line_number=0;
    map<string,vector<int> > ret;
    int i=0;
    while(getline(in,line)){
      ++line_number;   
      vector<string> words=find_words(line);

      for(vector<string>::const_iterator it=words.begin();it!=words.end();++it){
         ret[*it].push_back(line_number);
          }      
    }     
       return ret;
}


int main()
{
    map<string, vector<int> > ret=xref(cin);
   
    for(map<string,vector<int> >::const_iterator it=ret.begin();it!=ret.end();++it){
        cout<<it->first<<" occurs on line(s): ";
        
        vector<int>::const_iterator line_it=it->second.begin();
        cout<<*line_it;
        
        ++line_it;
        while(line_it!=it->second.end()){
            cout<<", "<<*line_it;
            ++line_it;
        }
        cout<<endl;
    }
    return 0;
}





要在xref函数內修改...但我修改後以致程序不能运行,我是將原來容器words內相同的單詞只取一个放进新設的容器中...
这样就不会有相同編號,,,,,但如果在main函数內修改..我想不出用什么方法可以將輸出編號不会有重複的出來
搜索更多相关主题的帖子: string include vector size 
2008-04-23 20:29
快速回复:請高手賜教
数据加载中...
 
   



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

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