【发布时间】:2019-03-07 22:02:09
【问题描述】:
我从ifstream 的输入中读取矩阵。然后,我将这些矩阵的 [0][0]th 元素放入 vector 并排序(降序)。
我的问题是,当我对元素进行排序时,我忘记了这些元素的矩阵编号。我需要它;我必须给出一个输出来显示 cth 矩阵是 ath 和 bth 矩阵的总和。
对它们进行排序后,我找不到哪个矩阵是哪个。
for(int r=0;r<(matrixColumn*matrixRow);r++) {
for(int x=0;x<matrixColumn;x++) {
for(int y=0;y<matrixRow;y++) {
for(int u=0;u<matrixNumber;u++) {
temp.push_back(totalmat[u][x][y]);
}
for(int v = 1; v < temp.size(); v++){
key = temp[v];
for(w = v - 1; (w >= 0) && (temp[w] < key); w--) {
temp[w+1] = temp[w];
}
temp[w+1] = key;
}
在这里,我将元素放入向量中,然后按降序对它们进行排序。
bool IfkIsTwo(vector<int> temp, int &q,int &f,int &z)
{
int a=temp.size()-1;
int b=temp.size()-2;
for(int c=0;c<temp.size()-2;c++) {
for(int d=1;d<temp.size()-2;d++) {
while(b!=c) {
if(temp[a]+temp[b]==temp[c])
return true;
else
b--;
}
a=temp.size()-d-1;
b=temp.size()-d-2;
}
}
return false;
}
这是我添加元素的函数。它看起来是否有任何元素是两个元素的总和。我需要通过元素的第一个不规则顺序知道哪两个元素的总和。
例如:
如果初始顺序是这样的:
3 2 5 7 1 4
我将这些排序如下:
7 5 4 3 2 1
发现 2 和 5 之和为 7,它必须给我The matrix 3 is sum of the matrices 1 and 2(它以 0 开头)
谢谢。
【问题讨论】:
标签: c++ algorithm sorting matrix vector