学习map的使用的问题?

vargent777 2003-12-16 09:44:46
class TextQuery{
public:
TextQuery(){memset(this,0,sizeof(TextQuery));}
static void
filter_element(string felems){filt_elems=felems;}

void query_text();
void display_map_text();
void display_text_locations();
void doit(){
retrieve_text();
separate_words();
filter_text();
suffix_text();
strip_caps();
build_word_map();
}
private:
retrieve_text();
separate_words();
filter_text();
suffix_text();
suffix_s(string&);
strip_caps();
build_word_map();

vector<string> *lines_of_text;
text_loc *text_locations;
map<string,loc*, less<string> > *word_map;
static string filt_elems;
}

string TextQuery::filt_elems(",.;:!?");
//这里总是说[C++ Error] Unit1.cpp(57): E2141 Declaration syntax error
为什么?摘录自C++ Primer 260页
...全文
48 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vargent777 2003-12-16
  • 打赏
  • 举报
回复
less是对前面两个参数string,loc*,比较吧?
diff是set里面的两个iterator的差,从她才得出赋值的内容阿?为什么去掉
还有input_set(infile),应该是读出文件的起始指针。?
vargent777 2003-12-16
  • 打赏
  • 举报
回复
diff_type去掉是行了,为什么要去掉呢?
less又为什么不用呢?
i_jianyong 2003-12-16
  • 打赏
  • 举报
回复
还有什么less<...>, allocator都去掉
i_jianyong 2003-12-16
  • 打赏
  • 举报
回复
去掉diff_type
vargent777 2003-12-16
  • 打赏
  • 举报
回复
可以得老兄,问题以解决,缺了个";"晕倒,!
但来了个新问题
void TextQuery::build_word_map()
{
word_map=new map<string,loc*,less<string> >;
typedef map<string,loc*,less<string> >::value_type value_type;
typedef set<string,less<string> >::difference_type diff_type;

set<string,less<string> > exclusion_set;

ifstream infile("exclusion_set");
if(!infile)
{
static string default_excluded_words[25]={
"the","and","but","that","then","are","been",
};
cerr<<"大不开excluded file"
<<"使用default set\n";

copy(default_excluded_words,default_excluded_words+25,
inserter(exclusion_set,exclusion_set.begin() ));
}
else{
istream_iterator<string,diff_type> input_set(infile),eos;
/*这里出错[C++ Error] Unit1.cpp(219): E2285 Could not find a match //for 'istream_iterator<string,unsignedint,char_traits<unsigned int>,int>::istream_iterator(ifstream)'*/
copy(input_set,eos,inserter(exclusion_set,exclusion_set.begin()));
}
这段程序是把数据读进set
i_jianyong 2003-12-16
  • 打赏
  • 举报
回复
看不出问题在哪里,在VC7.1下没问题
hanyixin 2003-12-16
  • 打赏
  • 举报
回复

string TextQuery::filt_elems(",.;:!?");

前面的string是什么意思?不能这样用的。
vargent777 2003-12-16
  • 打赏
  • 举报
回复
前面已用using namespace std,程序在BCB5下编译?是不是编译器问题,怎么改来避免这个问题

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧