Entonces tengo una lista:
list<Object> myList;
myList.push_back(Object myObject);
No estoy seguro, pero estoy seguro de que este sería el elemento "0" de la matriz. ¿Hay alguna función que pueda usar que devuelva "myObject"?
Object copy = myList.find_element(0);
?

vectoren su lugar?front().Respuestas:
Si necesita acceder con frecuencia al enésimo elemento de una secuencia,
std::listque se implementa como una lista doblemente enlazada, probablemente no sea la opción correcta.std::vectorostd::dequeprobablemente sería mejor.Dicho esto, puede obtener un iterador para el elemento N usando
std::advance:Para un contenedor que no proporciona acceso aleatorio, como
std::list,std::advancellamadasoperator++en el iteradorNveces. Alternativamente, si la implementación de su biblioteca estándar lo proporciona, puede llamar astd::next:std::nextes efectivamente envuelve una llamada astd::advance, lo que facilita el avance de losNtiempos de un iterador con menos líneas de código y menos variables mutables.std::nextse agregó en C ++ 11.fuente
std::advanceostd::next, es fácil invocar UB. No hay verificación de límites.std::listno proporciona ninguna función para obtener un elemento dado un índice. Puede intentar obtenerlo escribiendo algún código, que no recomendaría, porque sería ineficaz si lo necesitara con frecuencia.Lo que necesita es:
std::vector. Úselo como:fuente
fuente
Quizás no sea la forma más eficiente. Pero podrías convertir la lista en un vector.
Luego acceda al vector usando el operador [x].
Podrías poner eso en una función auxiliar:
Luego use la función de ayuda de esta manera:
fuente