gpt4 book ai didi

c++ - 在不接触第二维的情况下对二维数组进行排序

转载 作者:行者123 更新时间:2023-11-28 05:32:46 25 4
gpt4 key购买 nike

首先,你可能会疑惑:为什么要有二维,创建两个一维数组就可以了。
好吧,这是我的任务:用户键入查询的数量,然后对于每个查询,他输入任务的 ID,对于 ID = 0,我需要使用第一个数组 ([][0]),对于ID = 1 秒,如果没有 if 语句(if (ID == 0)...blablabla)会更漂亮。
当然有一种方法可以使用排序算法(冒泡、快速......)来做到这一点,但我有点好奇:它可以用 std::sort(); 函数来完成吗?
谢谢。
附言这是一个简单的例子来澄清:

我很抱歉举了这么糟糕的例子,我要编辑它,首先是我拥有的数据

2 1   
14 5
5 7
3 45 `

所以我需要这样排序:

2 1   
3 5
5 7
14 45

所以当输入查询时,例如 id=1 number=2 只输出 array[2][1];

最佳答案

您可以将数据表示为某种结构

struct data{
int id;
int other_data;
...
};

仅按 ID 排序...

{
std::vector<data> my_vec;
//Populate my_vec
std::sort(my_vec.begin(), my_vec.end(), [](const data& d1, const data& d2){
return d1.id < d2.id;
});
}

三大好处:

  1. 如果您以后需要 other_data_2 也与 id 保持一致,添加它很简单
  2. 可以避免使用复杂的多维数组
  3. 您可以避免使用数组(通过使用 vector )

关于c++ - 在不接触第二维的情况下对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com