|
发表于 2021-8-29 12:58:47
|
显示全部楼层
- #include <iostream>
- #include <vector>
- #include <utility>
- #include <algorithm>
- #include <functional>
- void sort(std::vector<size_t> &id, std::vector<size_t> &val) {
- if(id.size() != val.size()) return;
- std::vector<std::pair<size_t, size_t>> temp(id.size());
- for(size_t i = 0; i < id.size(); ++i) {temp[i].first = id[i]; temp[i].second = val[i];}
- std::sort(temp.begin(), temp.end(), std::less<std::pair<size_t, size_t>>());
- for(size_t i = 0; i < id.size(); ++i) {id[i] = temp[i].first; val[i] = temp[i].second;}
- }
- std::ostream &operator<<(std::ostream &os, const std::vector<size_t> &rhs) {
- for(const auto i: rhs) os << i << ' ';
- return os;
- }
- int main() {
- std::vector<size_t> id = {9, 1, 2, 8, 6, 4, 7, 3, 5};
- std::vector<size_t> val = {9, 1, 2, 8, 6, 4, 7, 3, 5};
- sort(id, val);
- std::cout << id << std::endl;
- std::cout << val << std::endl;
- return 0;
- }
复制代码
- #include <iostream>
- #include <vector>
- #include <utility>
- void sort(std::vector<size_t> &id, std::vector<size_t> &val) {
- if(id.size() != val.size()) return;
- for(size_t i = 0; i < id.size(); ++i) {
- for(size_t j = i + 1; j < id.size(); ++j) {
- if(val[i] > val[j]) {
- std::swap(id[i], id[j]);
- std::swap(val[i], val[j]);
- }
- }
- }
- }
- std::ostream &operator<<(std::ostream &os, const std::vector<size_t> &rhs) {
- for(const auto i: rhs) os << i << ' ';
- return os;
- }
- int main() {
- std::vector<size_t> id = {9, 1, 2, 8, 6, 4, 7, 3, 5};
- std::vector<size_t> val = {9, 1, 2, 8, 6, 4, 7, 3, 5};
- sort(id, val);
- std::cout << id << std::endl;
- std::cout << val << std::endl;
- return 0;
- }
复制代码 |
|