Pregunta novata de C++: Qué es el "()" en "vector<int>()"?



  • A veces veo esa notacion y no entiendo qué es. Especificamente no entiendo esto:

    QList<QList<QString>> lst;
    for(int i = 0; i < 10; i++){
        lst.append(QList<QString>());
    }
    


  • Hola @Eduardo12l

    Bueno, no soy ningún experto, QList es una clase plantilla. En el código que has puesto:

    QList<QList<QString>> lst;
    for(int i = 0; i < 10; i++){
        lst.append(QList<QString>());
    }
    

    Dentro del for estás añadiendo a la variable lst, que es una "lista de listas", una lista vacía, es decir, estás llamando al constructor de QList que te crea una lista vacía. Si sacas por pantalla esa lista, algo así:

    qDebug() << lst;
    qDebug() << "Tamaño: " << lst.size();
    

    Obtendrás algo así:

    ((),(),(),(),(),(),(),(),(),())
    Tamaño: 10

    Es decir, una lista, de 10 listas vacías

    En cambio, si cambias la línea por

    lst.append(QList<QString>({"Hola", "mundo"}));
    

    Ahí ya estás creando las mismas 10 listas, pero esta vez con dos cadena cada una.

    Soy muy malo explicando, espero que hayas entendido algo, a ver si pasa alguien con más conocimientos y explica mejor.

    Un saludo


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.