Advertisement
Guest User

any_satisfy

a guest
Nov 24th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #include <commons/collections/list.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.  
  8. t_list *lista = list_create();
  9.  
  10. //definís la estructura
  11. typedef struct
  12. {
  13. int campo1_lista;
  14. char campo2_lista;
  15. t_list *sublista;
  16. } campos;
  17.  
  18. //declarás la estructura
  19. campos estructura_campos;
  20.  
  21. // la llenás
  22. estructura_campos.campo1_lista = 1;
  23. estructura_campos.campo2_lista = 'a';
  24. estructura_campos.sublista = list_create();
  25.  
  26. //le clavás un puntero
  27. campos *puntero_a_estructura_campos = malloc(sizeof(campos));
  28. *puntero_a_estructura_campos = estructura_campos;
  29.  
  30. list_add(lista,puntero_a_estructura_campos);
  31.  
  32. //ok, ahora ya está agregado. Para ver lo que agregaste, hacés (obviamente podés volver a usar el otro puntero pero así es más genérico)
  33.  
  34. campos *aux = list_get(lista,0);
  35. printf("campo 1 lista: %i\n",aux->campo1_lista);
  36. printf("campo 1 lista: %c\n",aux->campo2_lista);
  37.  
  38. //ahora le agrego uno en la sublista
  39.  
  40. typedef struct
  41. {
  42. int campo1_sublista;
  43. char campo2_sublista;
  44. }campos_sublista;
  45.  
  46. campos_sublista estructura_campos_sublista;
  47. estructura_campos_sublista.campo1_sublista=2;
  48. estructura_campos_sublista.campo2_sublista='b';
  49.  
  50. campos_sublista *puntero_a_estructura_campos_sublista = malloc(sizeof(campos_sublista));
  51. *puntero_a_estructura_campos_sublista = estructura_campos_sublista;
  52.  
  53. list_add(aux->sublista,puntero_a_estructura_campos_sublista);
  54.  
  55. //para ver lo que agregaste
  56. campos_sublista *aux_sublista = list_get(aux->sublista,0);
  57.  
  58. printf("campo 1 sub_lista: %i\n",aux_sublista->campo1_sublista);
  59. printf("campo 1 sub_lista: %c\n",aux_sublista->campo2_sublista);
  60.  
  61.  
  62.  
  63. bool _campo1_igual_a_1(void *posicion)
  64. {
  65. return ((campos *)posicion)->campo1_lista == 1;
  66. }
  67.  
  68. bool _campo1_igual_a_0(void *posicion)
  69. {
  70. return ((campos *)posicion)->campo1_lista == 0;
  71. }
  72.  
  73. bool alguno_satisface = list_any_satisfy(lista, (void*)_campo1_igual_a_1);
  74. printf("alguna satisface la condición: %i\n",alguno_satisface);
  75.  
  76. alguno_satisface = list_any_satisfy(lista, (void*)_campo1_igual_a_0);
  77. printf("alguna satisface la condición: %i\n",alguno_satisface);
  78.  
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement