Pregunta novata de C++: Qué es el "()" en "vector<int>()"?
Solved
Spanish
-
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: 10Es 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