Kto To Asked:2020-12-13 16:24:59 +0000 UTC2020-12-13 16:24:59 +0000 UTC 2020-12-13 16:24:59 +0000 UTC 保位排序 772 是否有一个标准函数允许您在保留索引的同时对数组(向量或列表)进行排序,或者如何将这种排序为“两行”? std::list<int> src {1, 8, 3, 6, 5}; std::list<uint> res = magicFunc(&src); // src == [ 1, 3, 5, 6, 8] // res == [ 0, 2, 4, 3, 1] c++ 1 个回答 Voted Best Answer Mikhailo 2020-12-13T16:54:58Z2020-12-13T16:54:58Z 选项是使用自己的比较函数对索引向量进行排序。 vector<int> src = { 1, 8, 3, 12, 5, 9 }; vector<int> res = { 0, 1, 2, 3, 4, 5 }; sort(res.begin(), res.end(), [&src](int i, int j) { return src[i] < src[j]; }); for (int i : res) cout << i << " "; cout << endl;
选项是使用自己的比较函数对索引向量进行排序。