설정시 OutputIterator를 증가시켜야하는지 혼란 스럽습니다. 문자열을 분할하려고하는 다음 코드를 참조하십시오. 내 문제는 while 루프의 세 번째 줄에있다. * oit = ... 또는 * oit ++ = 있는지 여부에 관계없이 코드가 제대로 작동하는 것 같다 ... 누군가가 내게 왜 설명 할 수 있습니까?incrementing 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"));
}