排序二维数组不触及第二次元
Sort two-dimensional array without touching second dimension
首先,您可能会想:为什么需要两个维度,只需创建两个一维数组。
好吧,这是我的任务:用户类型查询的数量,然后为每个查询他输入任务的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;
});
}
三个好处:- 如果您以后需要
other_data_2
也与id
保持顺序,添加它是很简单的 - 可以避免使用复杂的多维数组
- 你可以避免使用数组(通过使用向量)
相关文章:
- 输出 0 和 -0 的二次公式,与给定的项无关
- 处理所有二次公式结果
- 两个嵌套循环的运行时间复杂性:二次型还是线性
- Cgal二次规划目标函数
- 二次代数建议数组等返回功能
- 无法从数组二次表达式中检索数据值
- C++ - 第二次二叉搜索的分段错误
- 创建二次公式求解器-范围中未声明的变量
- C++:你如何确定一个解是微不足道的还是不存在的二次函数?
- 有没有办法在函数以编程方式返回的引用上多次调用函数? -元组动态访问
- 如何将二次贝塞尔曲线代码转换为三次贝塞尔曲线
- 为什么使用STL排序()进行二次时间排序
- omp并行用于二次筛的无优化
- 分段故障:SET C++11中的二次排序
- C++识别以像素为单位的二次和三次显示
- 在 Vulkan 中加载非二次幂纹理
- C++二次码错误
- sqrt() 使用 <math.h) 在二次公式中的意外结果>
- 如何顺时针交换二次矩阵的四分之一(从左上角开始)
- 如何在C++中进行二维二次拟合