看过C++ Primer的过来帮帮我!
第六章最后那个例子!
这是出现错误代码的地方:
void TextQuery::build_word_map()
{
word_map = new map<string, loc*, less<string>, allocator<string> >;
typedef map<string, loc*, less<string>, allocator<string> >::value_type value_type;
typedef set<string, less<string>, allocator<string> >::difference_type diff_type;
set<string, less<string>, allocator<string> > exclusion_set;
ifstream infile("exclusion_set");
if(!infile)
{
static string default_excluded_words[25] = {"the", "and", "but", "that", "then", "are", "been", "can",
"can't", "cannot", "could", "did", "for", "had", "have", "him", "his", "her", "its", "into",
"were", "which", "when", "with", "would"};
cerr << "warning! unable to open word exclusion file! -- " << "using 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; //这里有错误!
//错误提示: 198 C:\Documents and Settings\Administrator\My Documents\Untitled2.cpp
//no matching function for call to `std::istream_iterator<std::string, diff_type,
copy(input_set, eos, inserter(exclusion_set, exclusion_set.begin()));
}
vector<string, allocator<string> > *text_words = text_locations->first;
vector<location, allocator<string> > *text_locs = text_locations->second;
register int elem_cnt = text_words->size();
for(int ix=0; ix<elem_cnt; ++ix)
{
string textword = (*text_words)[ix];
if((textword.size() < 3) || exclusion_set.count(textword))
continue;
if(!word_map->count((*text_words)[ix])) {
loc *ploc = new vector<location, allocator<string> >;
ploc->push_back((*text_locs)[ix]);
word_map->insert(value_type((*text_words)[ix], ploc));
}
else (*word_map)[(*text_words)[ix]]->push_back((*text_locs)[ix]);
}
}
各位一定要帮帮我啊!