Описание тега 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< на n-кортеже (например, на 3-кортеже), чтобы он удовлетворял строгой концепции слабого упорядочения? Я знаю, что библиотека Boost имеет класс кортежа с правильно определенным operator< но по некоторым причинам я не мог…
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< для строгого-…
02 июн '11 в 18:36
1
ответ
Разве stl сортировка не требует строгого слабого порядка для работы?
От http://stdcxx.apache.org/doc/stdlibref/less-equal.html - Вы можете передать объект less_equal любому алгоритму, для которого требуется двоичная функция. Например, алгоритм sort() может принимать двоичную функцию в качестве альтернативного объекта…
29 май '13 в 22:04
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…
27 ноя '12 в 00:14
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, где порядок является транзитивным? То есть там, где невозможно увидеть это поведение без создания пользовательских типов: >>> x < y < z < x True CPython не является транзити…
21 окт '16 в 16:16
1
ответ
PartialOrdering, StrictWeakOrdering, TotalOrdering, в чем основное отличие в приложении
[Официальный документ SGI] Из-за нерефлексивности и транзитивности оператор <всегда удовлетворяет определению частичного упорядочения. Определение строгого слабого порядка является более строгим, а определение полного порядка - еще более строгим. И…
13 сен '13 в 08:12
4
ответа
Какова логика порядка, в котором элементы передаются в функцию сравнения в std::sort?
Я практикую лямбды: int main() { std::vector<int> v {1,2,3,4}; int count = 0; sort(v.begin(), v.end(), [](const int& a, const int& b) -> bool { return a > b; }); } Это просто код от GeeksForGeeks для сортировки в порядке убывания…
03 янв '19 в 20:46