Iteradores Java para C++:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Amigas 'defines' Páginas
Clases | 'defines' | Funciones
Referencia del Archivo test_iterJava.cpp

Test ==> class iterJava<>. Más...

#include "iterJava.h"
#include "str2list.h"
#include "BUnit.h"
#include <cassert>
#include "Tree_BF.h"
#include "Tree_LRP.h"
#include "Tree_LPR.h"
#include "Tree_PLR.h"
#include <cmath>
#include <iostream>

Ir al código fuente de este archivo.

Clases

class  test_iterJava
 Test ==> iterJava<>. Más...
 
class  Random
 Encapsulamiento C++ de un generador como una iteración Java. Más...
 

'defines'

#define dim(V)   ( sizeof(V)/sizeof(*V) )
 
#define const_error
 

Funciones

std::list< long > makeList_long (const char *V)
 
void const_compile_error (std::list< long > &L)
 Implementación en la que se muestra que un const_iterator no se puede usar para eliminar valores. Más...
 
template<typename C >
bool isPalindrome (const C &CCC)
 Retorna true si CCC es un palíndromo. Más...
 
bool palindromo (const std::list< std::string > &L)
 Regresa true si al recorrer el contenedor "L" hacia adelante se obtiene el mismo resultado que al recorrerlo hacia atrás. Más...
 
void make_a_o (TL::Tree< char > &T)
 T = ( a ( b ( f g h ) c d e ( i j ( l m ( n o ) ) k ) ). Más...
 
void make_0_6 (TL::Tree< char > &T)
 T = ( 0 ( 1 ( 3 4 ) 2 ( 5 6 ) ) ). Más...
 
void make_A_H (TL::Tree< char > &T)
 T = ( F ( B ( A ( C E ) D ) ) G ( I ( H ) ) ). Más...
 
void make_A_O (TL::Tree< char > &T)
 T = ( A ( B ( D ( H I) E ( J K ) ) C ( F ( L M ) G ( N O ) ) ) ). Más...
 
void generateRandom ()
 Ejemplo de uso de iteraciones Java como generadores. Más...
 
template<class Collection >
void useIterator (Collection &C)
 Ejemplo de uso de la clase de iteración iterJava<>. Más...
 
int main ()
 Test ==> main() ==> iterJava(). Más...
 

Descripción detallada

Test ==> class iterJava<>.

Autor
Adolfo Di Mare adolf.nosp@m.o@di.nosp@m.-mare.nosp@m..com
Fecha
2009

Definición en el archivo test_iterJava.cpp.

Documentación de los 'defines'

#define dim (   V)    ( sizeof(V)/sizeof(*V) )
#define const_error

Documentación de las funciones

std::list<long> makeList_long ( const char *  V)
void const_compile_error ( std::list< long > &  L)

Implementación en la que se muestra que un const_iterator no se puede usar para eliminar valores.

Definición en la línea 178 del archivo test_iterJava.cpp.

template<typename C >
isPalindrome ( const C &  CCC)

Retorna true si CCC es un palíndromo.

  • Al recorrer un palíndromo hacia adelante se obtienen los mismo valors que al recorrerlo hacia atrás.
{{ // test::palindrome()
std::list<long> L = makeList_long( "( 1 2 3 2 1 )" );
typedef std::list<long>::const_iterator IterFwd;
typedef std::reverse_iterator<IterFwd> IterBck;
iterJava< IterFwd > itFwd( L.begin(), L.end() );
iterJava< IterBck > itBck( L.rbegin(), L.rend() );
while ( itFwd.hasNext() && itBck.hasNext() ) {
if ( itFwd.next() != itBck.next() ) {
assertTrue( "palindrome error" && false );
}
}
assertTrue( !itFwd.hasNext() && !itBck.hasNext() );
}}

template <typename C> bool isPalindrome( const C& CCC ) {{
typedef typename C::const_iterator Iter;
iterJava< Iter > itFwd, itBck;
itFwd.set(CCC);
itBck.set(CCC); itBck.setReverse();
while ( itFwd.hasNext() && itBck.hasNext() ) {
if ( itFwd.next() != itBck.next() ) {
return false;
}
}
return ( !itFwd.hasNext() && !itBck.hasNext() );
}}

{{ // test::isPalindrome()
assertFalse( isPalindrome( makeList_long( "( 1 2 3 4 5 )" ) ) );
assertTrue( isPalindrome( makeList_long( "( 1 2 3 2 1 )" ) ) );
assertTrue( isPalindrome( makeList_long( "( 1 )" ) ) );
assertTrue( isPalindrome( makeList_long( "( 1 2 1 )" ) ) );
assertTrue( isPalindrome( makeList_long( "( )" ) ) );
}}

Ver también
test_iterJava::test_palindrome()
test_iterJava::test_isPalindrome()

Definición en la línea 257 del archivo test_iterJava.cpp.

bool palindromo ( const std::list< std::string > &  L)

Regresa true si al recorrer el contenedor "L" hacia adelante se obtiene el mismo resultado que al recorrerlo hacia atrás.

Un palíndromo es una palabra que se lee igual al derecho que al revés.

{{ // test::palindromo()
assertTrue( palindromo( str2list( "[ 1 2 3 2 1 ]") ) );
assertFalse( palindromo( str2list( "[ 1 2 3 2 0 ]") ) );
assertTrue( palindromo( str2list( "[ r a d a r ]") ) );
assertFalse( palindromo( str2list( "[ M A J E M ]") ) );
}}

Definición en la línea 351 del archivo test_iterJava.cpp.

void make_a_o ( TL::Tree< char > &  T)

T = ( a ( b ( f g h ) c d e ( i j ( l m ( n o ) ) k ) ).

T = a
|--b
| |--f
T = a | |--g
/|\ | +--h
/ / \ \ |--c
b c d e |--d
/|\ /|\ +--e
f g h i j k |--i
/ \ |--j
l m | |--l
/ \ | +--m
n o | |--n
| +--o
+--k

Definición en la línea 870 del archivo test_iterJava.cpp.

void make_0_6 ( TL::Tree< char > &  T)

T = ( 0 ( 1 ( 3 4 ) 2 ( 5 6 ) ) ).

T = 0
T = 0 |--1
./ \. | |--3
1 2 | +--4
./ \ / \. +--2
3 4 5 6 |--5
+--6

Definición en la línea 919 del archivo test_iterJava.cpp.

void make_A_H ( TL::Tree< char > &  T)

T = ( F ( B ( A ( C E ) D ) ) G ( I ( H ) ) ).

F
T = F |--B
./ \. | |--A
B G | | |--C
./ \ \. | | +--E
A D I | +--D
./ \ /. +--G
C E H +--I

+–H

Definición en la línea 955 del archivo test_iterJava.cpp.

void make_A_O ( TL::Tree< char > &  T)

T = ( A ( B ( D ( H I) E ( J K ) ) C ( F ( L M ) G ( N O ) ) ) ).

T = A
|--B
| |--D
T = A | | |--H
./ \. | | +--I
./ \. | +--E
./ \. | |--J
B C | +--K
./ \ / \. +--C
D E F G |--F
./ \ / \ / \ / \. | |--L
H I J K L M N O | +--M

+–G |–N +–O

Definición en la línea 1003 del archivo test_iterJava.cpp.

void generateRandom ( )

Ejemplo de uso de iteraciones Java como generadores.

Definición en la línea 1075 del archivo test_iterJava.cpp.

template<class Collection >
void useIterator ( Collection &  C)

Ejemplo de uso de la clase de iteración iterJava<>.

Definición en la línea 1089 del archivo test_iterJava.cpp.

int main ( )

Test ==> main() ==> iterJava().

Definición en la línea 1106 del archivo test_iterJava.cpp.