Предположим, у меня есть QList из 100 MyItem
объектов, вставленных в определенном порядке. У каждого MyItem
есть связанный timestamp
и некоторая собственность p
, которая не гарантируется быть уникальной.Сохраняет ли qStableSort порядок эквивалентных элементов?
struct MyItem {
enum MyProperty { ONE, TWO, THREE };
double timestamp; //unique
MyProperty p; //non-unique
bool operator<(const MyItem& other) const {
return p < other.p;
}
};
Предположив Я добавил мои 100 объектов в хронологическом порядке, если бы я был бежать qStableSort на этом контейнере (таким образом, сортировка по p
), у меня есть гарантия, что при заданном значении p
, что они все еще находятся в хронологический порядок?
Я на самом деле не знаю, вообще ничего о 'qStableSort', но я думал, что это то, что' stable' часть любого 'стабильного рода 'означает - порядок эквивалентных элементов сохраняется. [Wikipedia Stable Sorts] (https://en.wikipedia.org/wiki/Category:Stable_sorts) – dwanderson
Я думаю, вы имеете в виду «не гарантировано быть уникальным» :). Во всяком случае, это определение того, что означает «стабильный» в «стабильном роде». – rici
@dwanderson Я полагаю, это точно мой вопрос. Описание функции просто говорит, что оно «стабильно», не определяя этот термин. – Phlucious