Описание тега strict-weak-ordering

1 ответ

Упорядочение памяти, другое исполнение и многопоточная безопасность

Я читал на память переупорядочения в последнее время. Мой вопрос касается многопоточных сценариев. Рассмотрим пример ниже: A = 0; B = 0; Thread 1 on Processor 1 Thread 2 on Processor 2 A = 100; while(B== 0); B = 1; //access A here Я программировал н…
08 июл '17 в 14:15
0 ответов

Строгий Слабый Порядок и std::sort()

Я пытался некоторое время, чтобы следующий код работал правильно. Проблема в функции сравнения sort(comp). Он сравнивает 2 двойных, но в некоторых случаях вызывает сбой программы с сообщением "Ошибка отладки! Программа: retrace.exe Файл:c: программн…
11 фев '12 в 21:33
1 ответ

Может std::sort с не строгим компаратором слабого порядка работать как топологическая сортировка?

Я знаю, что должен следовать строгому слабому порядку для компаратора C++. И главная причина в том, что !(a > b) && !(b > a) должен действовать как оператор эквивалентности. Но проблема заключается только в сортировке, где вам не нужен…
05 ноя '17 в 10:46
2 ответа

std::list Строгий слабый порядок

У меня много проблем с использованием функции std::list::sort, она работает большую часть времени, но время от времени выдает утверждение "недопустимый оператор<". Рассматривая эту проблему, я понял, что это потому, что моя функция сортировки не сле…
28 фев '13 в 02:10
7 ответов

Оператор <и строгий слабый порядок

Как определить operator&lt; на n-кортеже (например, на 3-кортеже), чтобы он удовлетворял строгой концепции слабого упорядочения? Я знаю, что библиотека Boost имеет класс кортежа с правильно определенным operator&lt; но по некоторым причинам я не мог…
11 июн '09 в 07:22
2 ответа

Сбой в std::sort - сортировка без строгого слабого порядка

Я пытаюсь отсортировать вектор предметов. Как указано в комментариях к коду, порядок должен быть: Участники с большим количеством очков действия (mAp) иди первый. Когда есть галстук, участники с одинаковым расположением (mDisposition) как инициатор …
25 фев '18 в 09:40
2 ответа

Как отсортировать математические векторы по строгому слабому порядку для карты?

Я пытаюсь написать std::map, где коллинеарные (параллельные или антипараллельные) векторы должны использовать один и тот же ключ. В качестве функции сравнения я использую следующую функцию (с допуском 1e-9 в isEqualEnough()), которую я создал с помо…
22 ноя '18 в 19:54
2 ответа

Вектор std::sort оператора недопустимой структуры <

У меня проблема со строгим слабым упорядочением в функции сравнения в std::sort. Я не понимаю, почему это не получится. У меня есть некоторые вложенные структуры: struct date{ int day = 1; int month = 1; int year = 2017; }; struct hhmmss{ int hours …
02 дек '17 в 16:04
4 ответа

Реализация операторов сравнения через 'tuple' и 'tie', хорошая идея?

(Заметка: tuple а также tie можно взять из Boost или C++11.) При написании небольших структур только с двумя элементами, я иногда склонен выбирать std::pair, поскольку все важные вещи уже сделаны для этого типа данных, как operator&lt; для строгого-…
02 июн '11 в 18:36
1 ответ

Разве stl сортировка не требует строгого слабого порядка для работы?

От http://stdcxx.apache.org/doc/stdlibref/less-equal.html - Вы можете передать объект less_equal любому алгоритму, для которого требуется двоичная функция. Например, алгоритм sort() может принимать двоичную функцию в качестве альтернативного объекта…
2 ответа

Сортированный набор без строгой слабой упорядоченности

У меня есть следующая проблема: Рассмотрим эту (упрощенную) структуру: struct Task { int priority; std::string description; // Some other fields }; Теперь я хочу получить набор всех заданий и поработать с ним. Поэтому у меня есть оператор равенства,…
03 ноя '15 в 18:37
3 ответа

Строго слабая путаница

Меня смущает строгий слабый порядок и то, как его использовать при определении оператора<. У меня есть пара структур: struct Plane { std::string name; int xrudder; int yrudder; int wingwidgets; bool hasLegacyEngine; }; struct Airport { bool security…
2 ответа

Что заставляет std::sort() обращаться к адресам вне диапазона

Я понимаю, что для использования std::sort() функция сравнения должна иметь строгий слабый порядок, иначе произойдет сбой из-за обращения к адресу вне пределов. ( https://gcc.gnu.org/ml/gcc-bugs/2013-12/msg00333.html) Однако зачем std::sort() обраща…
04 июн '14 в 21:37
2 ответа

Поддерживать порядок вставки для одинаковых элементов в std::multiset

У меня есть std::multiset отсортированных пользовательских объектов. Два равных объекта (на основе оператора <) в мультимножестве могут содержать некоторые поля, которые не равны. В этом случае мне нужно поддерживать порядок вставки объектов в мульт…
02 ноя '12 в 20:12
4 ответа

C++ Stl Set Поведение

Я пытался запустить приведенный ниже код. То, что я нахожу, - то, что есть разница в результатах. Я понимаю, что существует проблема с механизмом упорядочения, используемым в функциональности компаратора. Что я в основном ищу: 1) Как Set хранит данн…
29 янв '13 в 12:41
1 ответ

Почему priority_queue в STL не следует строгому слабому упорядочению?

Я поиграл с контейнерами STL и функцией сравнения / функторами, которые они поддерживают, однако я обнаружил, что priority_queue не следует обычному строгому слабому порядку, я пытаюсь понять, в чем может быть причина, но не в состоянии выяснить это…
31 авг '16 в 07:35
4 ответа

stl ordering - строгий слабый порядок

Почему STL работает с функцией сравнения со строгим слабым порядком? Почему это не может быть частичным заказом?
18 авг '09 в 11:13
2 ответа

Есть ли реализация Python2, где порядок является транзитивным?

Существует ли какая-либо существующая реализация Python2, где порядок является транзитивным? То есть там, где невозможно увидеть это поведение без создания пользовательских типов: &gt;&gt;&gt; x &lt; y &lt; z &lt; x True CPython не является транзити…
1 ответ

PartialOrdering, StrictWeakOrdering, TotalOrdering, в чем основное отличие в приложении

[Официальный документ SGI] Из-за нерефлексивности и транзитивности оператор <всегда удовлетворяет определению частичного упорядочения. Определение строгого слабого порядка является более строгим, а определение полного порядка - еще более строгим. И…
4 ответа

Какова логика порядка, в котором элементы передаются в функцию сравнения в std::sort?

Я практикую лямбды: int main() { std::vector&lt;int&gt; v {1,2,3,4}; int count = 0; sort(v.begin(), v.end(), [](const int&amp; a, const int&amp; b) -&gt; bool { return a &gt; b; }); } Это просто код от GeeksForGeeks для сортировки в порядке убывания…
03 янв '19 в 20:46