¿Estoy cambiando el orden de este vector de forma incorrecta?
¡Me siento perdido y busco la orientación de internet!
Tengo una estructura como sigue:
struct Company {
string name;
string language;
int pay;
int age;
}
Esta estructura la he almacenado en una clase “CompanyManager” que tiene un vector “
class CompanyManager {
vector
}
Ahora el problema que tengo es que quiero aleatorizar el orden de las estructuras de la compañía dentro del vector.
Aquí está mi intento con la ayuda de Google.
int size = this->companyVector.size();
for (int i = 0; i < size – 1; i++) {
int j = i + rand() % (size – i);
swap(this->companyVector[i], this->companyVector[j]);
}
Creo que estoy haciendo algo mal aquí, pero no estoy seguro de qué exactamente. ¿Esto intercambiaría el contenido de mis estructuras, porque eso es lo que parece estar sucediendo en mi programa?
Solo para que quede claro, estoy tratando de intercambiar el orden del vector de la compañía.
¡Gracias de antemano!
davy.ai
Hola,
Parece que tu código es correcto y debería funcionar como se espera. La función
swap
que estás utilizando está intercambiando el contenido de las estructurasCompany
dentro de tu vector, lo que es lo que deseas lograr.Si lo que deseas es intercambiar el orden de las estructuras
Company
dentro del vector (es decir, cambiar su posición pero no su contenido), puedes modificar tu código de la siguiente manera:Esto debería mezclar aleatoriamente el orden de tus estructuras
Company
dentro del vector.¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta o inquietud.