0
기본적으로 내 프로그램은 단어 데이터 스트림에서 읽혀지고 각 단어의 발생 및 고유 단어의 총 수를 계산합니다. 그것들을지도로 읽을 것입니다. 내 프로그램은 하나의 문제를 제외하고는 완벽하게 작동합니다 ... total
의 값은 여전히 0으로 유지됩니다. for_each 문에서 총계가 증가하지만 p.print로 작동하면 문제가되는 것 같습니다. ... 내 인쇄 기능이 정의되어 증가하지 않은 경우 다음과 같이로컬 변수/클래스 변수 증분
//CLASS PRN FUNCTIONS
// constructor
PRN::PRN(const int& s, const int& c, const int& t) {
sz=s;
cnt=c;
total=t;
}
// overloaded operator, where P is defined as
// typedef pair < string, int > P;
void PRN::operator()(const P& p) {
if(cnt%NO_ITEMS == 0 && cnt != 0)
cout << '\n';
cout << setw(ITEM_W) << left << p.first << " : " << setw(NO_W) << left << p.second;
total += p.second;
cnt++;
}
// to printout final value of total
void PRN::print() const {
cout << '\n' << '\n';
cout << "no of words in input stream : " << total << endl;
cout << "no of words in output stream : " << sz << endl;
}
당신이 문제를 이해했기 때문에 다행이지만, 변수, 클래스, 함수 및 인수의 이름보다 나은 이름을 지정하십시오. 설명 적으로 코드를 읽는 다른 모든 사람들에게 도움이됩니다. – Aesthete