Las listas de Leda tienen (casi) todas las operaciones implementadas. Sobre todo sus iteradores son muy fáciles de usar. Existen dos tipos de ellos: iteradores sobre los contenidos e iteradores sobre los contenedores (los llamados list_item).
Ejemplo:
Si almacenamos las esquinas de un polígono tridimensional en una lista de puntos del tipo d3_point podemos dibujar dicho polígono con OpenGL así:
list<d3_point> L;
...
glBegin(GL_POLYGON);
forall(p,L) {
glVertex3d(p.xcoord(),p.ycoord(),p.zcoord());
}
glEnd();
Ejemplo:
Para calcular un área ponderada aplicando la fórmula usamos el iterador de contenedores porque necesitamos acceso al sucesor cíclico:
list<d3_point> L;
...
double A_xy=0.0;
if(L.size()>2) {
list_item it,jt;
forall_items(it,L) {
jt =L.cyclic_succ(it);
A_xy+=jt.contents().xcoord()*it.contents().ycoord()-
it.contents().xcoord()*jt.contents().ycoord();
}
A_xy*=0.5;
}