Problema comparando un QList con un QString
-
Mi codigo es el siguiente:
for(int i = 0; i < 25; i++){ if(vector[i].compare(aux) == 1){ //Problema cont++; query2.bindValue(":idAlmacenados",cont); query2.bindValue(":HoraA",b); query2.bindValue(":HoraB",c); query2.bindValue(":Nombre",a); query2.bindValue(":Grupo",d); } }
Mi problema es que cada vez que trato de compara el vector[i](del tipo QList) con aux, el programa a la hora de compilar no muestra errores, pero a la hora de correrlo el programa colapsa y se cierra. El problema se que esta en el "compare" ya que cuando saco el "== 1" el programa corre pero cuando obtengo el valor numerico de "vector[i].compare(aux)" el resultado es -3 cuando segun tengo entendido compare debería dar un booleano. Alguien me puede explicar por que pasa esto y como deberia compara un QList
PD: QVector tiene el mismo problema y el "==" sin compare no sirve -
If vector is a Qlist, why not using
for(int i = 0; i < vector.length(); i++){
Also it is advised to use "at(i)" instead of [] see the docs
Edit : tested to use google translate here and it seems ok... i hope:
Si el vector es un qlist, ¿por qué no usar
for(int i = 0; i < vector.length(); i++){
También se recomienda para usar "at(i)" lugar de [] ver los documentosEditar: probado para usar traductor Google aquí y parece bien ... espero
-
Vector supongo que es un QList de QStrings y aux es un QString.
Compare siempre devuelve un int mira la documentacion: http://doc.qt.io/qt-5/qstring.html#compare-2. Ademas la sentencia if() soporta tanto booleano como enteros, si es != 0 es true y si es 0 false. Asi que el problema del error y se te cierra no creo que venga del compare.