Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mamaev
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 13
#1

Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" - C++

11.06.2014, 12:28. Просмотров 271. Ответов 1
Метки нет (Все метки)

Помогите написать программу: Дан двусвязный список, состоящий из n символов, два из которых "*". Удалить из него все элементы до первого элемента "*" и после последнего элемента "*".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 12:28     Удалить из двусвязного списка все элементы до первого "*" и после последнего "*"
Посмотрите здесь:

C++ Удалить все символы от "I" до "N"
C++ Удалить из массива "лишние" (кроме первого) элементы
C++ Вывод всех символов строки, расположенных после первого символа ":"
Удалить все символы "*", а символы, не являющиеся "*", удвоить C++
C++ Заменить в тексте все пары "ph" на букву "f"
C++ Шаблон двусвязного списка и ошибка "Члены недоступны"
Во введённом предложении заменить все сочитания "ах" на "ух" C++
C++ Вырезать все символы ".", кроме последнего
Удалить все буквы "X" и "Y" C++
C++ Из массива структур "Авто" удалить все элементы, у которых год выпуска меньше заданного
C++ Не корректно считает перегрузку оператора "-" после "+"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
11.06.2014, 13:33     Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <list>
 
int main()
{
   std::list<char> letters = {'a', 'b', 'c', '*', 'd', 'f', 'g', '*', 'h', 'i'};
   auto asterix_pos = std::find(letters.begin(), letters.end(), '*');
   letters.erase(letters.begin(), asterix_pos);
   asterix_pos = std::next(asterix_pos);
   asterix_pos = std::next(std::find(asterix_pos, letters.end(), '*'));
   letters.erase(asterix_pos, letters.end());
   for (char c : letters) std::cout << c << " ";
   std::cout << std::endl;
}
Yandex
Объявления
11.06.2014, 13:33     Удалить из двусвязного списка все элементы до первого "*" и после последнего "*"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru