Pregunta

En lugar de implementar mi propio Me preguntaba si alguien sabe de un histograma o una bolsa de aplicación estructura de datos en Objective-C que puedo usar.

En esencia, un histograma es un HashMap de listas en las que las listas contienen valores que se relacionan con su entrada hash. Un buen ejemplo es un histograma de artículos de supermercado donde se coloca cada grupo de artículos lácteos, carne, productos enlatados en su propia bolsa. A continuación, puede acceder muy fácilmente a cada grupo de elementos de acuerdo a su tipo.

¿Fue útil?

Solución

NSCountedSet es una conjunto múltiple (también conocido como "bolsa") que cuenta objetos distintos, pero no permite duplicados. Sin embargo, en función de su explicación, no creo que eso es lo que necesita, y tampoco es una histograma , que cucharones automáticamente los valores sobre la base de un conjunto de (por lo general numérica) varía.

Creo que lo que realmente quiere es un multimap , que es una "llave de una -o-más valores" relación. Los href="http://cocoaheads.byu.edu/code/CHDataStructures" marco estructuras de datos mantengo incluye CHMultiDictionary , una aplicación multimap. No voy a reclamar por cualquier medio que sea perfecta o completa, pero espero que puede ser útil para su problema.

Otros consejos

Me suena como si simplemente quiere un diccionario de matrices. Se puede poner NSArrays como elementos de NSDictionarys, algo como:

NSMutableDictionary* dict = [NSMutableDictionary dictionary];
[dict setObject:[NSMutableArray arrayWithObjects:@"milk", @"eggs", @"cheese", nil] forKey:@"dairy"];
[dict setObject:[NSMutableArray arrayWithObjects:@"steak", @"sausages", @"mince", nil] forKey:@"meat"];

[[dict objectForKey:@"meat"] addObject:@"lamb"];

NSLog( @"Dictionary is %@", dict );

Hay una en la GNU Objective-C Clase biblioteca , pero el docs parecen ser bastante incompleta y del proyecto página de inicio debe estar teniendo actualmente un problema - aún así, si el software GPL es aceptable para su proyecto, es posible que desee y comprobar las fuentes.

CFIOMultimap aparentemente es una implementación de un multimap. Sin embargo, a partir del momento de la escritura no pude conseguir que funcione. Devuelve Nils todo el tiempo cuando el subíndice i.

Tal vez se puede arreglar y adaptado para su uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top