Thread: STL for "C"
View Single Post
  #3 (permalink)  
Old 02-06-2007, 03:09 PM
~nn ~nn is offline
Newbie
 
Join Date: Feb 2007
Posts: 2
Rep Power: 0
~nn is on a distinguished road
Default

Basically it looks pretty good.
This is an example of using map and vector togehter:

Code:
{
char s[]="tstvec1 12 23  34 45 56 tstvec1_last";
char s1[]="tstvec2 12 23  34 45 56 67 78 tstvec2_last";
char s2[]="tstvec3 12 23  34 45 56 43 56 89 tstvec3_last";
char s3[]="tstvec4 1 2  3 4 5 6 7 8 9 tstvec4_last";
void *vp;
Vec *vecP;
char fnd[50];
MR mp;
int i,j,k;
Vec *vPtr4;
Vec *vPtr5;
int key;

    mPtr = Map_Start(MULTI_MAP,STR,100);
    vPtr = vecStart(STR,100);
    vPtr1 = vecStart(STR,100);
    vPtr2 = vecStart(STR,100);
    vPtr3 = vecStart(STR,100);

    vecSplit(vPtr,' ',s);
    vecSplit(vPtr1,' ',s1);
    vecSplit(vPtr2,' ',s2);
    vecSplit(vPtr3,' ',s3);

    Map_StrAdd(mPtr,"Vec",(void*)vPtr);
    Map_StrAdd(mPtr,"Vec1",(void*)vPtr1);
    Map_StrAdd(mPtr,"Vec2",(void*)vPtr2);
    Map_StrAdd(mPtr,"Vec3",(void*)vPtr3);

    strcpy(fnd,"Vec3");
    vecP = (Vec *)Map_FindByStrKey(mPtr,fnd);
    if ( vecP != NULL)
    {
            for(i=0;i<vecSize(vecP);i++)
            {
                    printf("Item from vecP = %s\n",vecStrGetOne(vecP,i));
            }
    }
    else printf ("MAP: item=%s not found\n",fnd);

    strcpy(fnd,"Vec1");
    vecP = (Vec *)Map_FindByStrKey(mPtr,fnd);
    if ( vecP != NULL)
    {
            for(i=0;i<vecSize(vecP);i++)
            {
                    printf("Item from vecP = %s\n",vecStrGetOne(vecP,i));
            }
    }
    else printf ("MAP: item=%s not found\n",fnd);

    sz = Map_Size(mPtr);

    for(i=0; i<sz;i++)
    {
        mp = Map_GetByIndx(mPtr,i);
        printf("Map Key=%s \n",mp.key);
        vecP = (Vec*)mp.item;

        if ( vecP != NULL)
        {
                for(j=0;j<vecSize(vecP);j++)
                {
                        printf("Index: %d Item from vecP = %s\n",i,vecStrGetOne(vecP,j));
                }
        }
    }
    Map_Print(mPtr);
    vecStop(vPtr);
    vecStop(vPtr1);
    vecStop(vPtr2);
    vecStop(vPtr3);
    Map_Stop(mPtr);

Last edited by Jordan; 02-06-2007 at 03:37 PM. Reason: Added Code Tags
Reply With Quote