stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_adjfind/src/adjfind2.cpp
changeset 0 e4d67989cc36
child 18 47c74d1534e1
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1 
       
     2  
       
     3 // STLport regression testsuite component.
       
     4 // To compile as a separate example, please #define MAIN.
       
     5 
       
     6 #include <string>
       
     7 #include <vector>
       
     8 #include <algorithm>
       
     9 #include <iostream>
       
    10 
       
    11 #ifdef MAIN
       
    12 #define adjfind2_test main
       
    13 #endif
       
    14 
       
    15 #if !defined (STLPORT) || defined(__STL_USE_NAMESPACES)
       
    16 using namespace std;
       
    17 #endif
       
    18 static int equal_length(const char* v1_, const char* v2_)
       
    19 {
       
    20   return ::strlen(v1_) == ::strlen(v2_);
       
    21 }
       
    22 int adjfind2_test(int, char**)
       
    23 {
       
    24 	
       
    25 	cout<<"Results of adjfind2_test:"<<endl;
       
    26 	typedef vector <char*> CStrVector;
       
    27 
       
    28 	char* names[] = { "Brett", "Graham", "Jack", "Mike", "Todd" };
       
    29 
       
    30 	int failures =0;
       
    31 	const int nameCount = sizeof(names)/sizeof(names[0]);
       
    32 	CStrVector v(nameCount);
       
    33 	for(int i = 0; i < nameCount; i++)
       
    34 	v[i] = names[i];
       
    35 	CStrVector::iterator location;
       
    36 	location = adjacent_find(v.begin(), v.end(), equal_length);
       
    37 	if(location != v.end())
       
    38 	{
       
    39 		cout
       
    40 		  << "Found two adjacent strings of equal length: "
       
    41 		  << *location
       
    42 		  << " -and- "
       
    43 		  << *(location + 1)
       
    44 		  << endl;
       
    45 		//first matching pair should be found at location 2
       
    46 	    if (*location != names[2])
       
    47 	    	failures++;
       
    48     }
       
    49 	else
       
    50 	{
       
    51 		cout << "Didn't find two adjacent strings of equal length.";
       
    52 		failures++;
       
    53 	}
       
    54 
       
    55 	if (!failures)
       
    56 		return 0;
       
    57 	else
       
    58 	return 1;
       
    59 }