View Single Post
-=hunter=-
Senior Member
Join Date: Jul 2008
Old 08-08-2011 , 07:13   Re: Developer Builds Available
#62

Hello, I want to suggest to add function array_fast_compare which will be to compare two array with instantaneous speed (50ms, 2 two arrays with 20000 elements) to find difference or union.
Which functions in C++ Builder:
PHP Code:
#include <set>
#include <algorithm>
#include <iterator>
#include <system.hpp>

int array_string_compare(String sArray1[], int iArrCount1String sArray2[], int iArrCount2String sArray3[], int iTypeCompare)
{
        
std::set<Stringtrie1(sArray1sArray1+iArrCount1), trie2(sArray2sArray2+iArrCount2), trie3;
        
std::set<String>::const_iterator itrend_itr1end_itr2;
        
std::insert_iterator<std::set<String> > trie3_ins(trie3trie3.begin());

        switch (
iTypeCompare)
        {
                case 
0:
                        
set_difference(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
1:
                        
set_symmetric_difference(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
2:
                        
set_union(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
3:
                        
set_intersection(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;                        
        }

        
int iCount 0;
        for ( 
itr trie3.begin(); itr != trie3.end(); itr++)
        {
                
sArray3[iCount++] = *itr;
        }
        return 
iCount;
}

int array_int_compare(int sArray1[], int iArrCount1int sArray2[], int iArrCount2int sArray3[], int iTypeCompare)
{
        
std::set<inttrie1(sArray1sArray1+iArrCount1), trie2(sArray2sArray2+iArrCount2), trie3;
        
std::set<int>::const_iterator itrend_itr1end_itr2;
        
std::insert_iterator<std::set<int> > trie3_ins(trie3trie3.begin());

        switch (
iTypeCompare)
        {
                case 
0:
                        
set_difference(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
1:
                        
set_symmetric_difference(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
2:
                        
set_union(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;
                case 
3:
                        
set_intersection(trie1.begin(), trie1.end(), trie2.begin(), trie2.end(), trie3_ins);
                        break;                        
        }

        
int iCount 0;
        for ( 
itr trie3.begin(); itr != trie3.end(); itr++)
        {
                
sArray3[iCount++] = *itr;
        }
        return 
iCount;

Please tell me what programs do I need to compile the module from source? I want to try to do something with module.

Last edited by -=hunter=-; 08-08-2011 at 08:12.
-=hunter=- is offline
Send a message via ICQ to -=hunter=- Send a message via Skype™ to -=hunter=-