좋아요, 저는 학교 프로젝트를 진행 중이며 다른 클래스의 링크 된 목록 (클래스 "목표"라는 클래스 내에서 "작업"), 그래서 나는 STL 클래스를 사용하고 있습니다. 지금은 거의이지만, 디스플레이 기능에서는 작업의 내용을 표시하기 위해 반복기를 사용하고 있습니다. 하지만 iteration에 taskList.begin()을 할당 할 수 없기 때문에 오류가 발생합니다.아니요 연산자 "="가이 피연산자와 일치합니다 - 표준 템플릿 라이브러리의 반복자
다음은 내가 관련 있다고 생각하는 코드입니다. objective.h
#ifndef OBJECTIVE_H
#define OBJECTIVE_H
#include <string>
#include <list>
#include "date.h"
#include "task.h"
using namespace std;
namespace team2
{
class objective
{
private:
string objective_name, objective_desc, resources[10];
int category, priority, res_used;
double time;
date start, end;
int status;
std::list<task> taskList;
public:
// CONSTRUCTORS
objective();
objective(string objN, string objD, int c, int p, date s, date e, double t, string res[], int resU, int stat, list<task>& tList);
...
// CONSTANT MEMBER FUNCTIONS
void display() const;
...
};
}
#endif
objective.cpp
(I 오류를 얻을 곳입니다)
#include "objective.h"
#include "date.h"
#include <cstdlib>
#include <cassert>
#include <string>
#include <list>
#include "task.h"
using namespace std;
namespace team2
{
void objective::display() const // display() - Displays the complete contents of a single objective
{
int days, hours, minutes;
std::list<task>::iterator taskIterator;
days = floor(time/24.0); // Find the max number of days based off of the time (in hours)
hours = floor(time - days*24); // Find the max number of hours after deduction of days
minutes = floor((time - (days*24 + hours))*60); // Find the number or minutes after taking into account hours and days
cout << "\nObjective Name: " << objective_name << endl;
cout << "Objective Description: " << objective_desc << endl;
cout << "Category: Quad " << category << endl;
cout << "Priority: " << priority << endl;
cout << "Starting Date: " << start.getMonth() << "/" << start.getDay() << "/" << start.getYear() << endl;
cout << "Ending Date: " << end.getMonth() << "/" << end.getDay() << "/" << end.getYear() << endl;
cout << "Time Required: " << days << " Days " << hours << " Hours " << minutes << " Minutes " << endl;
cout << "Resources: " << endl;
if(res_used == 0)
cout << "\tNo Resources" << endl;
for(int i = 0; i < res_used; i++)
cout << "\t" << resources [i] << endl;
cout << "Current Status: ";
if(status == 1)
cout << "Completed" << endl;
else if(status == 0)
cout << "Incomplete" << endl;
cout << "Tasks: " << endl;
if(taskList.empty())
cout << "\tNo Resources" << endl;
for(taskIterator = taskList.begin(); taskIterator != taskList.end(); taskIterator++)
{
(*taskIterator).display();
cout << endl;
}
}
}
하는 작업 클래스는 생략 몇 필드, 목적 클래스와 거의 동일합니다. for 루프에서 오류가 발생합니다. for (taskIterator = taskList.begin(); ...) 누구든지 문제의 원인을 알고 있습니까? 필요한 경우 더 많은 코드를 제공 할 수도 있습니다. 미리 감사드립니다.