我使用PDF Error 144: Invalid TrueType data found
Assert Failed: cmap_off > -1
从输入中读取矩阵。然后,我将这些矩阵的ifstream
th 元素放入[0][0]
中并进行排序(降序)。
我的问题是,当我对元素进行排序时,我无法跟踪这些元素的矩阵编号。我需要它;我必须给出一个输出以显示第c th 个矩阵是第a th 个和第b th 个矩阵的和。
对它们进行排序后,我找不到哪个矩阵。
vector
在这里,我将元素放入向量中,然后按降序对其进行排序。
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;
}
这是我添加元素的函数。它查找是否有两个元素之和。我需要按元素的第一个不规则顺序知道哪个是两个2元素之和。
例如:
如果初始订单如下:
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
发现2和5的总和为7,它必须给我7 5 4 3 2 1
(以0开头)
谢谢。
答案 0 :(得分:1)
您可以存储std::vector<int>
std::pair
std::vector<
来代替<int, int>>
,其中对中的第一个值是该索引的值,第二个值是索引本身(由row*(num_cols)+ col
计算)。
排序时,您只需要看一下该索引处的值即可:
std::vector<std::pair<int, int>> temp;
if(temp.at(some_spot).first < temp.at(other_spot).first) { ...