c++ - 排序多维数组/vector

标签 c++ sorting vector

我想根据存储在元素 sequ[i][2] 和 sequ[i][3] 中的两个值对数组进行排序。

如果 sequ[i][2] 有相似的值,它按 sequ[i][3] 值排序。

vector< vector<int> > sequ;
int m = 1024, n = 32;
sequ.resize(m);
for(int i = 0 ; i < m ; ++i){
sequ[i].resize(n);
}
sort(sequ[0].begin(),sequ[0].end());

不幸的是,我只知道如何对整个数组进行排序,但不知道如何对特定元素进行排序。我该怎么做

最佳答案

执行此操作的非 lambda 方法类似于:

bool func(const vector<int> &v1, const vector<int> &v2)
{
    if(v1[2] < v2[2]) return true;
    if(v1[2] > v2[2]) return false;
    return v1[3] < v2[3];
}

...

sort(sequ.begin(),sequ.end(),func);

关于c++ - 排序多维数组/vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928457/

相关文章:

c++ - 这种语法是非法的吗?

python - 排序多维字典

android - 将 Android 矢量绘图转换为启动器图标 PNG

c++ - 填充一个二维 vector

c++ - 将数字放入不同的堆中

c++ - 为什么数组对象类的所有元素都重复最后输入的数据 C++

c++ - Gtk 3.10 小部件是否向后兼容?

c++ - 是否有提议将 std::bin 添加到 c++ 标准?

python - 对 python 数组进行排序

javascript - 算法按给定数字从最近到最远对数组进行排序