D STL Containers Phobos - ¿Cómo uso un rango?

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?

preguntado el 12 de junio de 12 a las 20:06

He creado una solicitud de extracción para Phobos para documentar cómo se va a utilizar esta función más claramente. -

1 Respuestas

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 or haz tu propia pregunta.