Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Программа для расчёта по формуле https://www.cyberforum.ru/ cpp-beginners/ thread2721434.html C++ Как напечатать таблицу?
Дано: 2 0 4 2 3 3 6 4 2 6 6 6 8 6 4 2 9 9 9 9 Напечатать на экране таблицу,которая дана выше.
C++ Найти прямоугольную область белого цвета состоящую из наибольшего количества ячеек https://www.cyberforum.ru/ cpp-beginners/ thread2721417.html
В прямоугольной таблице клетки раскрашены в белый и черный цвета. Найти в ней прямоугольную область белого цвета, состоящую из наибольшего количества ячеек. Входные данные: Во входном файле INPUT.TXT записана сначала высота N, а затем ширина M таблицы (1≤N≤100, 1≤M≤100), а затем записано N строк по M чисел в каждой строке, где 0 означает, что соответствующая клетка таблицы выкрашена в...
C++ Определите средства, необходимые для приобретения отдельных продуктов питания и в целом Каждый день ресторан покупает м1 кг масла, м2 кг сметаны, м3 л молока. Определите средства, необходимые для приобретения отдельных продуктов питания и в целом, если 1 кг масла=153,50 тг, 1 кг сметаны=147,10 тг, 1 л молока=35,30 тг. https://www.cyberforum.ru/ cpp-beginners/ thread2721414.html
C++ Вывести строку - текстовое описание данного числа
Дано целое число в диапазоне 100-999. Вывести строку - описание данного числа. Навпример 256 - двести пятьдесят шесть, 814 - восемьсот четырнадцать
C++ необходимо составить блок-схему для последующей реализации программы в с++ https://www.cyberforum.ru/ cpp-beginners/ thread2721409.html
вот сама задача. саму программу уже написала, но требуется также и блок-схема, в чем я не сильна. Надеюсь на помощь.Буду ооочень благодарна. Население 2-х стран в 2014 году равно N1 и N2 человек соответственно. Прирост населения этих стран составляет P1 и P2 % в год соответственно. Население N1 < N2, а P1 > P2. Определить, в каком году население первой страны превзойдет население второй страны....
C++ Переделать возвращаемый тип значения Здравствуйте, прошу помочь, кого не затруднит буду очень благодарен. У меня такая ситуация, я сначало сделал код, но было задание перегрузить операции, мне на форуме помогли перегрузить но после перегрузки выдает ошибку ибо, у меня операции OR,XOR,AND возвращают строку. Помогите изменить что-бы возвращало НЕ строку, и код работал правильно. Код прилагается. Ошибку нужно решить в OR, XOR, AND. https://www.cyberforum.ru/ cpp-beginners/ thread2721398.html Изменить тип возвращаемого из функции C++
Здравствуйте, прошу помочь, кого не затруднит буду очень благодарен. У меня такая ситуация, я сначало сделал код, но было задание перегрузить операции, мне на форуме помогли перегрузить но после перегрузки выдает ошибку ибо, у меня операции OR,XOR,AND возвращают строку. Помогите изменить что-бы возвращало НЕ строку, и код работал правильно. Код прилагается. Ошибку нужно решить в OR, XOR, AND.
C++ Подсчитать, сколько раз в строке встречается её последняя буква https://www.cyberforum.ru/ cpp-beginners/ thread2721387.html
Подсчитать, сколько раз в строке встречается её последняя буква. Пример: h232h5j2j2 → 4
C++ Вычислить произведение ряда Всем привет! Я тут залип и никак не получается решить данное уравнение. Мне нужна ваша помощь. Данное уравнение надо решить в С++(Было бы круто, если бы это решение было похоже на то, что решал новичок Вычислить и вывести на экран К ввести с клавиатуры. Вывести код в файл f3_4.txt https://www.cyberforum.ru/ cpp-beginners/ thread2721384.html
Структура "Ученик", найти средний возраст учеников C++
Общее задание: 1) Описать тип структуры, состоящий из заданного перечня полей (см. вариант задания). 2) Объявить переменные h и p этого типа. 3) Значение полей переменной h задать с клавиатуры, значение полей переменной р задать присваиванием. 4) Вывести переменные на экран с соответствующим пояснительным текстом. 5) Выполнить задания из последнего столбца таблицы над переменными h и p....
C++ Проверка на валидность морского боя https://www.cyberforum.ru/ cpp-beginners/ thread2721373.html
Приветствую, форумчане. Я сделал проверку на количество 4-, 3-, 2- и однопалубников. Их должно быть 4, 2, 3 и 4 соответственно. Корабли считает нормально, но остаётся только реализовать проверку на соприкосновение двух кораблей. Пробовал делать проверку на то, есть ли по диагонали с клеткой корабля закрашенная клетка, то есть если arr==1 или arr==1 то возвращаем, что поле невалидное. Но у меня...
8 / 3 / 1
Регистрация: 11.08.2016
Сообщений: 44
0

Удаление элемента из списка std::list в цикле - C++ - Ответ 14962632

01.11.2020, 13:18. Показов 6544. Ответов 17
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
*проверил подобные темы на форуме, но нормального ответа на свой вопрос так и не нашел. Гугл тоже решил лишь часть проблемы.
Есть список структур std::list<Contact>. С ним работают 2 потока: 1-й поток добавляет элементы, 2-й - удаляет. Удаление происходит по условию if
Код
if (iter->sthread != ThreadState::WORK)
Проблема в том, что я никак не могу сделать удаление без вылета программы.
Сначала я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
while (*((TalkersCommand*)lpParam) != TalkersCommand::EXIT)
    for (auto iter = Contacts.begin(); iter != Contacts.end(); iter++)
    {
        printf("LIST_LENGTH = %d\n", Contacts.size());
        if (iter->sthread != ThreadState::WORK)
        {
            EnterCriticalSection(&scListContact);
            Contacts.remove(*iter);
            LeaveCriticalSection(&scListContact);
        }
    }
Но этот код даже не скомпилился, компилятор выдавал ошибку "Ошибка C2678 бинарный "==": не найден оператор, принимающий левый операнд типа "const _Ty" (или приемлемое преобразование отсутствует)"
Нагуглил другой вариант: заменить Contacts.remove(*iter) на Contacts.erase(iter), но теперь вылетала ошибка "cannot increment value-initialized iterator".
Так же пробовал заменить цикл for на while (тоже нагуглил такой вариант):
C++
1
2
3
4
5
6
7
8
9
10
11
12
while (*((TalkersCommand*)lpParam) != TalkersCommand::EXIT)
{
    std::list<Contact>::iterator i = Contacts.begin();
    printf("LIST_LENGTH = %d\n", Contacts.size());
    while (i != Contacts.end())
    {
        if (i->sthread != ThreadState::WORK)
            i = Contacts.erase(i);
        else
            i++;
    }
}
И хотя этот код удаляет элемент из списка (видно в консоли "LIST_LENGTH = 0"), вылетает ошибка "Expression: connot dereference value-initialized list iterator".
Я студент, делаю лабу - многопоточный сервер на WinSock, но C++ как таковой мы не учили в принципе (ну, вы понимаете: знать синтаксис, пару функций Си и знать C++ - огромная разница). Когда подключается клиент, данные о нем заносятся в список, а когда отключается - элемент этого клиента помечается как "для удаления" (sthread элемента = что угодно, кроме WORK), и поток должен постоянно проверять список и удалять уже ненужные элементы. Объясните, пожалуйста, как это сделать по-человечески? Уже чувство, что я вообще перестал понимать, как устроен этот чертов список.
Заранее спасибо!

Вернуться к обсуждению:
Удаление элемента из списка std::list в цикле C++
0
Заказать работу у эксперта

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2020, 13:18
Готовые ответы и решения:

Std::list удаление элемента во время цикла
Добрый вечер, Как бы удалить элеммент без &quot;сбора итераторов&quot;. #include &lt;iostream&gt; #include...

Удаление элемента списка list.STL
Всем привет! Ребята, не могу понять почему у меня не получается удалить конкретный элемент списка....

Удаление элемента из списка List<T> (Удалить счет по по названию из указанного клиента)
Здравствуйте уважаемые форумчане, столкнулся с проблемой: есть два класса &quot;клиент&quot; и &quot;счета&quot;, в...

Непосредственное удаление из std::list
Собственно проблема вот в чем раньше, когда я создавал игру, у меня были самодельные листы типа ...

17
01.11.2020, 13:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2020, 13:18
Помогаю со студенческими работами здесь

Удаление значения в std::list
Имеем метод для удаления, где value - предов. значение, а list&lt;films&gt; coll - копия др....

Заполнение списка std::list из буфера
Помогите пожалуйста с кодом. Есть задание: надо реализовать заполнение списка состоящего из слов...

Инициализация элементов списка списков (List<List>) происходит одинаково для каждого элемента
Доброго времени суток. Не знаю как лучше озаглавить эту тему, но у меня проблема со следующим...

Переместить элемент внутри списка std::list
Что-то я не пойму, простая вроде задача - переместить элемент внутри спиcка std::list - стандартной...

Получение предыдущего объекта из списка (std::list)
#include &lt;Iostream&gt; int main() { std::list&lt;COORD*&gt; coords; COORD* pCoord; for(uint16 i...

Вставка нового элемента в список, удаление элемента из списка, просмотра содержимого списка
очень нужно:tender: 1. Разработать подпрограммы, реализующие основные операции обработки линейного...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru