Sorting algorithm to sort data based on common keys
Hi,
I have data in a format like as,
Code:
QList<QPair<QString, QJsonValue>> sessionList
Check the sample data of sessionList
Quote:
QPair("2717b2bb-aa1f-460e-b6ff-c932114a8b99",QJsonValue(object, QJsonObject({"CreatedAt":"2019-06-18T10:34:37.3501135","FileName":"imgLeft8bitColor_ 000000050.png","FrameIndex":30,"ImageGuid":"76d453 ed-0950-424d-952f-b20d1f0c921f","IsKeyframe":false, "TabGuid":"2717b2bb-aa1f-460e-b6ff-c932114a8b99"})))
QPair("078f7119-844d-4c31-9eee-c695f2c9adbb",QJsonValue(object, QJsonObject({"CreatedAt":"2019-06-18T11:21:58.5620774","FileName":"imgLeft8bitColor_ 000000050.png","FrameIndex":30,"ImageGuid":"3c9517 ae-6c96-4746-8279-1c143339f576","IsKeyframe":false, "TabGuid":"078f7119-844d-4c31-9eee-c695f2c9adbb"})))
Like above I have more data that I want to sort based on QPair.first(consider as key)(say, "078f7119-844d-4c31-9eee-c695f2c9adbb").
So what sorting algorithm I should use which sort my QJsonValue for the same type of key in one container?
Note: Key count can vary
Re: Sorting algorithm to sort data based on common keys
Hi, you can use std::sort to sort a QList. This algorithm accepts a custom compare function.
See http://www.cplusplus.com/reference/algorithm/sort/ for details and an example.
Ginsengelf
Re: Sorting algorithm to sort data based on common keys
Sorting means not to sort in ascending or descending order, I want all the data having the same key in one container.
I found one solution for that, use QMultiHash or QMultiMap, here it can allow adding multiple data under the same key, so in that way, I can distinguish or sort data.
But still, I'm looking for an option where I can have one key and data can be added under that key only, not the way QMultiHash work, as it stores key and data in a separate list even if keys are same.
Re: Sorting algorithm to sort data based on common keys
Maybe a QMap < QString, QList < QJsonValue > >?
Ginsengelf
Re: Sorting algorithm to sort data based on common keys
Thank you Ginsengelf, it works like a charm :cool: