@flexpc

Ошибка вывода списка C++?

#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <cstring>
#include <list>
using namespace std;

int main()
{
	char message[] = "Привет мир";
	char alphabet[] = { '&', 'а', 'м', 'Й', 'ю', '4', 'p', '=', 'F', '7', 'Ц', 'H', 'a', 'O', 'Ш', 'R', 'Л', 'M', 'з', 'I', 'о', '!', 'Н', '2', 'j', '5', 'Ж', '6', '0', 'Ю', 'ч', 'C', 'm', 'З', 'в', '+', '1', 'u', 'G', 'Z', '#', 'т', 'c', '.', 'э', 'e', '3', 'х', 'у', 'Y', 'd', 'D', 'Д', '%', 'й', 'r', 'Q', 'д', 'щ', 'N', '-', 'V', 'y', 'С', 'Ч', 'Б', '8', 'К', 'X', 'T', '9', 'b', 'S', '$', 'М', 'A', 'L', 'q', 'Р', '@', 'р', 'У', 'ё', 'E', 'Ф', '~', 'л', 'О', 'и', 'Х', 't', 'ж', 'k', 'w', 'f', 'Э', 'е', 'П', 'B', 'И', 'Ё', '?', ',', 'ц', 'v', 'ш', 'б', 's', 'н', 'l', 'g', 'А', 'Т', 'я', 'n', 'J', 'K', 'h', 'В', 'x', 'i', 'с', 'U', 'W', 'п', 'к', 'P', 'ф', 'Е', 'z', 'o', 'г' };

	int key = 1;// GetRandomNumber(0, 16);
	list<char> result;
	
	for (int index = 0; index < strlen(message); index++)
	{
		char elem = message[index];
		if (index + key > size(alphabet) + 1)
		{
			index = index + key - size(alphabet);
		}
		else
		{
			index = index + key;
		}
		result.push_back(alphabet[index]);
	}

	cout << result;
}


Ошибка (активно) E0349 отсутствует оператор "<<", соответствующий этим операндам 31 строка

Как пофиксить эту ошибку и вывести список?
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
cout умеет сам по себе выводить только базовые типы: int, char, string, и т.д.

Ошибка об этом и говорит, что никто не реализовал оператор << для списка.

Если вы хотите выводить список, вам надо руками реализовать этот вывод. Циклом пройдитесь по всем элементам и выводите их, разделяя пробелами или чем вам там надо.

еще можно перегрузить оператор << для списка, тогда код в main останется без изменения, но тот же самый цикл придется все равно написать в операторе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы