c++二维矢量排序
C++ 2D vector sorting
我想对2D向量(10x100)中的数字进行排序。
我的想法是先按行排序,然后在第一列中找到最小的数字并将其保存在一个新的1D向量中,然后删除列中最小的数字,以此类推,直到最后一个数字。
我的代码是这样的,但是它不起作用。
vector <vector <int> > vec(10, vector <int> (0));// already sorted by rows.
vector <int> datafinal;
for( int row=0; row < vec.size(); row++){
int mini = vec[0][0];
if (vec[row][0]< mini) {
datafinal.push_back(mini);
vec[row].erase(vec[row].begin());
}
}
for (int k=0; k< datafinal.size(); k++){
cout << datafinal[k] << endl;
}
根据你的问题和逻辑示例,我觉得这就是你想要做的:
- 您希望对整个矩阵/2d矢量进行排序,以便从左到右,从上到下读取矩阵/2d矢量将按升序/降序读取。
在这种情况下,您可以将整个矩阵/2d向量视为一组N个元素进行排序,但您必须确保以2d格式正确放置/替换数据。
这样的一个例子是:
[3,5,1]
[1,3,1]
[12,4,1]
如果您将其表示为[3,5,1,1,3,1,12,4,1]
,则可以将其作为标准数组/向量处理:通过将其视为标准数组/向量,可以对该集合执行普通排序函数。
然后将其转换回矩阵/2d格式,您可以遍历该集合,每次您读取构成行N大小的元素数量时,您将移动到新行
相关文章:
- 为什么指针在对二维数组进行排序时无法正常工作?
- 使用 std::sort 对二维 c 数组进行排序
- 如何对二维矢量进行排序
- 根据类中另一个对象 C++ 的值对类中的二维对象进行排序并赋予值
- 排序后如何将二维数组重置为原始形式
- 在一维数组中对二维进行排序
- 对角度二维数组进行排序
- 这是用于对二维数组进行排序的最佳方法
- 按一列对二维数组进行气泡排序
- 排序二维结构阵列
- 根据用户输入对二维数组进行排序和打印
- C++:二维指针数组排序:选择排序不适用于某些实例
- 基于另一个二维向量对二维向量进行排序
- 对 C++ 中的二维数组进行排序
- 二维数组中的插入排序
- 在C++中对二维数组使用插入排序函数
- 排序函数不适用于c++中的二维向量
- 如何在c++中对二维数组进行排序
- c++按列排序二维向量
- 排序二维数组不触及第二次元