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

Потокобезопасно ли одновременно добавлять в конец list обьекты и удалять из середины? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление последнего символа в файле txt http://www.cyberforum.ru/cpp-beginners/thread1669522.html
Здравствуйте! Помогите пожалуйста! Как можно удалить самый последний символ в конце файла?
C++ Среднее арифметическое модулей четных элементов массива Здравствуйте! Помогите, пожалуйста, найти среднее арифметическое модулей четных элементов массива, расположенных между первым отрицательным и последним положительным элементами. http://www.cyberforum.ru/cpp-beginners/thread1669517.html
C++ Теряется указатель на начало односвязного списка
#include <stdio.h> #include <stdlib.h> #include <iostream> #include <ctype.h> typedef struct Node { struct Node* next; int value; } Node; typedef struct List {
C++ Реализовать функцию поиска по заданному полю в массиве структур (файловый ввод/вывод)
Имеется информация о клиентах телефонной компании и предоставляемых им услугах. Каждая услуга имеет собственный тариф, а каждый клиент может пользоваться произвольным набором услуг в течение ограниченного интервала времени (соответственно срокам договора). Имеются данные о фактическом использовании услуг. Вся указанная информация представлена текстовыми файлами, структура которых выглядит...
C++ Перехватывающая Функция с доступом к статичным членам класса http://www.cyberforum.ru/cpp-beginners/thread1669454.html
Возможно ли объявить, Функцию перехватчик таким образом чтобы она имела доступ к переменным класса. Оригинальная функция: void UStruct::Serialize( FArchive& Ar ) { Super::Serialize( Ar ); // Serialize stuff. Ar << ScriptText << Children;
C++ Адаптация куска кода, написанного по стандарту C++11, под стандарт C++03 есть код namespace cmd { inline auto get_size(const char *path) -> decltype( std::declval<struct dSTATE64>().st_size ) { struct dSTATE64 info; const auto re = dSTATE64(path, &info); подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2913 / 1449 / 398
Регистрация: 18.10.2014
Сообщений: 2,673
26.02.2016, 07:26     Потокобезопасно ли одновременно добавлять в конец list обьекты и удалять из середины?
Цитата Сообщение от Valeryn Посмотреть сообщение
А разве эта запись в stl_list.h (в gcc) не говорит об обратном? C++14
Нет, не говорит. Она говорит о том, что реализация стандартной библиотеки в GCC нарушает действующий стандарт языка. На эту тему много писали

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49561

и даже в какой-то момент GCC попытался перейти на правильную реализацию. Но потом изменение откатили взад - мол добавление лишнего поля в 'std::list' создает слишком много проблем с обратной бинарной совместимостью. Так что до сих пор GCC-шный 'std::list' нестандартен.

Цитата Сообщение от Valeryn Посмотреть сообщение
Если splice линеен, то тогда зачем вообще нужен лист, на фоне других контейнеров, ведь его фича то быстром изменении любых элементов в середине.
(хотя, а разве не быстрее при splice не счетчик пересчитывать, а складывать два счетчика? или это слишком затратная операция?)
Какие "два счетчика"? Если вы сплайсите один список весь целиком в другой список, то тогда и проблемы никакой нет - действительно суммируем счетчики и дело в шляпе. Проблема возникает именно при частичном 'splice': когда некий собственный поддиапазон элементов из одного списка при помощи 'splice' переносится в другой список. Сколько элементов в этом поддиапазоне - заранее неизвестно. Поэтому для поддержания счетчика в целевом списке приходится честно эти элементы пересчитывать. Что требует линейного времени на выполнение такого 'splice'.
 
Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru