Здравствуйте! У меня возникла проблем со списком структур.
У меня есть структура: //Код 1
C++ |
1
2
3
4
5
6
| struct Uchet
{
string login;
string parol;
int isAdmin;
}; |
|
Нужно создать список list, тип у которого - структура Uchet, чтобы хранить в нем учетные записи. //Код 2
C++ |
1
2
3
| list <Uchet> Loggin; //Пустой двусвязный список
insert_account(Loggin); //Добавление элемента
WriteList(Loggin); //Вывод списка структур |
|
Функции из Код 2: //Код 3
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| void insert_account(list <Uchet> Loggin)
{
Uchet NewAccount;
cout << "Добавление новой учетной записи" << endl;
cout << "Введите логин:" << endl;
cin >> NewAccount.login;
cout << "Введите пароль:" << endl;
cin >> NewAccount.parol;
NewAccount.isAdmin = 0;
Loggin.push_back(NewAccount);
}
void WriteList(list <Uchet> Loggin)
{
copy(Loggin.begin(), Loggin.end(), ostream_iterator<int>(cout, " "));
} |
|
Выглядит все логично, но возникает ошибка:
Серьезность | Код | Описание | Проект | Файл | Строка | Состояние подавления |
Ошибка | C2679 | бинарный "=": не найден оператор, принимающий правый операнд типа "Uchet" (или приемлемое преобразование отсутствует) | МойПроект | c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\xutility | 2414 | |
Я подозреваю, что проблема возникла из-за неверной передачи списка структур в функции, но не знаю, как это сделать правильно. Помогите пожалуйста исправить ошибку!
////Если код из функций переместить в main, то все работает.
////Привожу ниже полный код:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| #include "pch.h"
#include <iostream>
#include <fstream>
#include <clocale>
#include <list>
#include <string>
#include <string.h>
#include <fstream>
#include <algorithm>
#include <vector>
#include <stdio.h>
#include <iterator>
using namespace std;
struct Uchet
{
string login;
string parol;
int isAdmin;
};
void insert_account(list <Uchet> Loggin)
{
Uchet NewAccount;
cout << "Добавление новой учетной записи" << endl;
cout << "Введите логин:" << endl;
cin >> NewAccount.login;
cout << "Введите пароль:" << endl;
cin >> NewAccount.parol;
NewAccount.isAdmin = 0;
Loggin.push_back(NewAccount);
}
void WriteList(list <Uchet> Loggin)
{
copy(Loggin.begin(), Loggin.end(), ostream_iterator<int>(cout, " "));
}
int main()
{
setlocale(LC_ALL, "rus");
list <Uchet> Loggin; //Пустой двусвязный список
fstream accounts("accounts.bin", ios::binary);
insert_account(Loggin);
WriteList(Loggin);
system("pause");
return 0;
} |
|