【发布时间】:2016-05-24 08:55:31
【问题描述】:
template <class write_iter> //class for splitting a line into individual words
class Split
{
public:
split(const string& line, write_iter destination)
{
typedef string::const_iterator iter;
iter i;
while(i != line.end())
{
i = find_if(i, line.end(), not_space);
iter j = find_if(i, line.end(), space);
if (i != line.end())
*destination++ = string(i,j);
i = j;
}
}
bool not_space(char c)
{
return !isspace(c);
}
bool space(char c)
{
return isspace(c);
}
};
int main()
{
while(getline(cin, line))
Split<> split(line, back_inserter(words));
}
我希望能够传递任何我想要的迭代器: 例如:back_insterter(somevector)、ostream_iterator
对于 back_inserter,Split 分裂?
【问题讨论】:
标签: c++ class templates iterator