Сообщение полной ошибки читает:Ошибка C2679: бинарный «<<»: ни один оператор не найден (вектор итераторы используется)
Ошибка C2679: двоичные «< <»: ни один оператор не найден, который принимает правый операнд типа «станд :: _ Vector_iterator < станд :: _ Vector_val < станд :: _ Простой _ типы < проекты>>>» (или нет приемлемой конверсии)
не хорошенькая, но вот мой код к ошибке, с функциями геттеров и сеттеров, происходящими в другом месте, но они не кажутся важными для этой ошибки:
#include "Project.hpp"
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <list>
#include <ostream>
#include <stdlib.h>
using namespace std;
int main(){
cout << "Welcome to our project topic allocator, please enter the student spreadsheet; " << endl;
vector<student> studentvector;
vector<projects> projectsvector;
vector<projects> availchoicevector;
//string excelsupervisor;
//supervisor staff;
string excelstudent;
student pupil;
string excelprojects;
projects selections;
selections.zbbb(excelprojects);
//pupil.xbbb(excelstudent);
//staff.ybbb(excelsupervisor);
int counter;
vector<student>::iterator first1 = studentvector.begin(), last1 = studentvector.end(), fileline1;
vector<projects>::iterator first2 = projectsvector.begin(), last2 = projectsvector.end(), fileline2;
for (fileline1 = studentvector.begin(), fileline2 = projectsvector.begin(); fileline1 != studentvector.end(), fileline2 != projectsvector.end(); fileline1++, fileline2++){
cout << "Student ID " << fileline1->get_studentname() << endl;
int var1 = fileline1->get_numberofselections();
if (var1 = !4){
cout << "Student has not made 4 choices, consult student!" << endl;
fileline2 = fileline2 + (var1 - 1);
continue;
}
else{
//for (fileline2; fileline2 < fileline2 + 4; fileline2++){
const auto &p = fileline2->get_projectID(); //fileline2 = 1st choice
auto y = find(availchoicevector.begin(), availchoicevector.end(), p);
if (y != availchoicevector.end()){
cout << "Project ID . Supervisor ID of allocated choice: " << *y << "." << fileline2->get_supervisorIDproj << endl;}
С ошибкой, имеющей место на последней строке в поле «< <» перед «* y».
Вот заголовок, соответствующий этой части кода.
class projects{
private:
string projectname, projectsup, supervisornameproj, stunameproj;
float projectID;
int itterator, rank, classs, supervisorIDproj, stuIDproj, regnumproj;
public:
projects();
~projects();
void set_projectname(string);
void set_supervisornameproj(string);
void set_stunameproj(string);
void set_stuIDproj(int);
void set_supervisorIDproj(int);
void set_projectID(int);
void set_regnumproj(int);
void set_rank(int);
void set_classs(int);
string get_projectname(){return projectname;}
string get_stunameproj(){return stunameproj;}
string get_supervisornameproj(){return supervisornameproj;}
int get_regnumproj(){return regnumproj;}
int get_supervisorIDproj(){return supervisorIDproj;}
int get_stuIDproj(){return stuIDproj;}
int get_projectID(){return projectID;}
int get_rank(){return rank;}
int get_classs(){return classs;}
bool zbbb(string);
bool sorting(int);
vector<projects> projectsvector;
vector<projects> availchoicevector;
};
Я хочу знать, как решить этот вопрос. Я понимаю, что должен перегрузить оператор < <, но я не знаю, как это сделать для этого случая!
Любая помощь была бы принята с благодарностью!
[Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) «Включите достаточно кода, чтобы другие могли воспроизвести проблему. Для справки прочтите [ Как создать минимальный, полный и проверенный пример.] (Http://stackoverflow.com/help/mcve) ". «Когда вы задаете вопрос о проблеме, вызванной вашим кодом, вы получите гораздо лучшие ответы, если вы предоставите код, который люди могут использовать для воспроизведения проблемы». –
Вам нужно перегрузить 'operator <<' для класса проектов. Вот пример [MSDN] (https://msdn.microsoft.com/en-us/library/1z2f6c2k.aspx?f=255&MSPPError=-2147217396) – NathanOliver
Ну, сообщение об ошибке компилятора довольно ясно. Если вы хотите иметь эту функциональность, вам необходимо предоставить свою собственную реализацию. Я не выхожу из коробки. –