我很困惑,當我設置它,我是否應該增加一個輸出迭代。看到下面的代碼,我試圖分割一個字符串。我的問題是與while循環的第三行,代碼似乎好工作我是否* OIT = ...或* OIT ++ = ... 有人能向我解釋,爲什麼?遞增back_inserter是可選的?
template<class O> void split(string& s, O oit){
string::iterator jt, it = s.begin();
while(1){
jt = find(it, s.end(), ' ');
if(it == s.end() && jt == s.end()) return;
*oit++ = string(it, jt);
it = jt;
if(it != s.end()) it++;
}
}
...
int main(){
string s;
getline(cin, s);
vector<string> v;
split(s, back_inserter(v));
copy(v.begin(), v.end(), ostream_iterator<string>(cout, "\n"));
}