문자열의 왼쪽과 오른쪽에서 공백을 제거하는 두 개의 한 줄 함수를 작성하려고합니다. 왼쪽 측면은 문제가되지 않았다 :공백 제거/반복자 변환
void trimLeft(string &s) {
s.erase(s.begin(), find_if(s.begin(), s.end(), (int (*)(int))isgraph));
}
하지만 오른쪽에 비슷한 시도 할 때 :
void trimRight(string &s) {
s.erase(find_if(s.rbegin(), s.rend(), (int (*)(int))isgraph), s.end());
}
을 좀 컴파일러 오류가 있었다. 문제는 find_if에 의해 반환되는 reverse_iterator를 일반 iterator로 변환해야한다는 것입니다. 이 작업을 수행하는 방법?
항상 학교 프로젝트의 Boost.StringAlgorithm –
에서'trim'있다, 나는 부스트를 사용할 수 없습니다. – Adi
왜'isgraph'를 캐스팅하고 있습니까? –