Bu derleme hatası alıyorum: Ben (*cols_it).first
ve (*cols_it).second
ve aklıma gelen her permütasyon kullanarak denedimharitası yineleyici: tekli geçersiz tip argüman '*' (var 'int')
error: invalid type argument of unary '
*
' (have 'int
')
_M_insert_unique_(end(), *__first);
, ama derlemeyi başaramam. Ne yazmalıyım?
İşte kod bazıları aşağıda verilmiştir:
#include <map>
#include <vector>
using std::map;
using std::vector;
void setZeroes(vector<vector<int> > &A) {
map<int,int> rows;
map<int,int> cols;
for (unsigned int x = 0; x < A[0].size(); x++) {
for (unsigned int y = 0; y < A.size(); y++) {
if (A[x][y] == 0) {
rows.insert(y,y); // error reported here
cols.insert(x,x);
}
}
}
map<int,int>::iterator rows_it = rows.begin();
map<int,int>::iterator cols_it = cols.begin();
while (rows_it != rows.end()) {
for (unsigned int i = 0; i < A[0].size(); i++) {
int val = rows_it->second;
A[val][i] = 0;
}
rows_it++;
}
while (cols_it != cols.end()) {
for (unsigned int i = 0; i < A.size(); i++) {
int val = cols_it->second;
A[i][val] = 0;
}
cols_it++;
}
}
BTW, belki daha ziyade std :: formunun mağaza çiftleri daha set kullanmayı tercih ediyorum "x -> x", haritadaki? – bipll