@sabn1k
Возможно я написал чепуху, но попытайтесь понять

По какому принципу выводятся числа (back_inserter, front_inserter)?

Никак не могу понять, почему при back_inserter выводится 3 2 1 7 8 9, а при front_inserter 7 8 9 1 2 3? Я правильно понимаю, что тут действует принцип LIFO? Тогда почему при front_inserter в конце выводится 1 2 3, а не 3 2 1, как в первом варианте?
int main()
{
	setlocale(LC_ALL, "Russian");
	deque<int> d1, d2;

	int arr1[] = { 1, 2, 3 };
	int arr2[] = { 7, 8, 9 };

	for (int j = 0; j < 3; j++)
	{
		d1.push_back(arr1[j]);
		d2.push_back(arr2[j]);
	}
	copy(d1.begin(), d1.end(), back_inserter(d2)); // или front_inserter(d2)
	for (int j = 0; j < d2.size(); j++)
		cout << d2[j] << ' ';
	return 0;
}
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@MiiNiPaa
Вы перепутали что при чём выводится. У back_inserter будет 7 8 9 1 2 3, у front_inserter — 3 2 1 7 8 9

back_inserter вставляет каждый элемент в конец: 7 8 9 → 7 8 9 1 → 7 8 9 1 2 → 7 8 9 1 2 3

front_inserter — в начало: 7 8 9 → 1 7 8 9 → 2 1 7 8 9 → 3 2 1 7 8 9
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы