c++ - 排序并行数组
问题描述
我有两个数组。一个是卷号,另一个是卷号的总分。我必须按升序对卷号数组进行排序,同时保留分配给每个卷号的数据。我已经对数组进行了排序,但是如何根据卷号放置标记?
这是到目前为止的代码。
int roll_num[5] = { 2, 4, 1, 6, 8 }, total_marks[5] = { 9, 7, 10, 8, 9 }, min=0, temp, size = 5;
for (int i = 0; i <= size; i++)
{
min = i;
for (int j = i + 1; j < size; j++)
{
if (roll_num[j] < roll_num[min])
{
min = j;
}
}
swap(roll_num[i], roll_num[min]);
}
cout << "Roll No." << " " << "Total Marks" << endl;
for (int i = 0; i < size; i++)
{
cout << roll_num[i] << " | " << total_marks[i] << endl;
}
解决方案
您可能希望将这两个数组组合成一个std::map。然后它将被排序并连接您的值:
int roll_num[5] = { 2, 4, 1, 6, 8 };
int total_marks[5] = { 9, 7, 10, 8, 9 };
std::map<int, int> my_map;
for (int i=0; i < 5; ++i) {
my_map.insert(roll_num[i], total_marks[i]);
}
如果您希望它们按roll_num
.
推荐阅读
- scala - Scala如何避免使用null?
- react-native - 无法在 react-native 中调用类作为函数并使用 expo 运行
- ios - 如何让应用状态恢复正常工作?
- rust - 为什么添加第二个 impl 会阻止对参数的 deref 强制?
- python - 如何让“python -i”读取 PYTHONSTARTUP 文件?
- javascript - 使用JS提交时防止多个表单提交
- python - 使用 Python 将颜色添加到索引 PNG 图像
- haskell - 给定一个函数记录,以及函数作用的类型的数据记录,如何通用地应用函数记录?
- python - 在运行时使用 keras 从自动编码器模型中保存隐藏层的特征
- tesseract - Tesseract 新字体训练失败