D STL Containers Phobos - ¿Cómo uso un rango?
Frecuentes
Visto 234 equipos
3
No puedo encontrar ninguna buena documentación sobre cómo usar un rango junto con un contenedor. Estoy tratando de insertar un elemento en una SList usando la función .insertAfter() dada. Sin embargo, se necesita un rango y no tengo idea de cómo recuperarlo.
¿Puede alguien publicar uno o dos ejemplos de cómo usar esta función mal documentada?
Esta es la documentación D para contenedores: http://dlang.org/phobos/std_container.html
También he leído que los rangos se pueden usar como iteradores de C++. Si esto es cierto, ¿cómo puedo usar un rango en un ciclo?
1 Respuestas
6
utilice el operador de división ([]
) para obtener el rango de un contenedor
para iterar sobre un contenedor puedes hacer:
foreach(el;container[]){
}
un rango tiene una propiedad frontal que es el elemento al que apunta actualmente, el popFront de un rango moverá el rango al siguiente elemento y vacío indicará si el rango está al final
el bucle foreach anterior es equivalente a
for(auto range=container[];!range.empty;range.popFront()){
auto el = range.front;
}
para insertar en el medio de la lista tendrá que hacer
container.insertAfter(take(container[],5),element);
para insertar al final es
container.insertAfter(container[],element);
Respondido el 13 de junio de 12 a las 13:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas stl range d or haz tu propia pregunta.
He creado una solicitud de extracción para Phobos para documentar cómo se va a utilizar esta función más claramente. - eco