This page has been designed specifically for the printed screen. It may look different than the page you were viewing on the web.
Please recycle it when you're done reading.

The URI for this page is { http://cc.byexamples.com }

simple use of vector, dynamic array Posted on January 18th

Wanna create a dynamic array without malloc under c++? Consider using vector. We need a dynamic array that can allow us delete any elements at any position, delete all elements, insert any element at any position. Bellow is an example code that does all of those requirements.

#include<vector>
#include<cstdio>
using namespace std;

int main()
{
    vector<int> dyarray;

    int a=7;
    dyarray.push_back(a);
    dyarray.push_back(8);
    dyarray.push_back(a+2);

    for (a=0;a<dyarray.size();a++)
        printf("%d ",dyarray[a]);
    printf("\n");

    //delete second element
    a=1; //second element
    dyarray.erase(dyarray.begin()+a);
    printf("size %d\n",dyarray.size());
    for (a=0;a<dyarray.size();a++)
        printf("%d ",dyarray[a]);
    printf("\n");

    //insert at position 2
    dyarray.insert(dyarray.begin()+1,3);
    printf("size %d\n",dyarray.size());
    for (a=0;a<dyarray.size();a++)
        printf("%d ",dyarray[a]);
    printf("\n");

    //delete all
    dyarray.clear();
    printf("size %d\n",dyarray.size());

    return 1;
}

Output :

7 8 9
size 2
7 9
size 3
7 3 9
size 0

It should be easy to understand and need no further explanation. Vector declaration is a bit awkward if you didn’t experience it before.

vector<int> dyarray;

It create a new vector dyarray container to store dynamic integer element. You can define a structure or even class and create a vector of your structure or class.

#include<vector>
#include<cstdio>
#include<cstring>
using namespace std;

typedef struct _MYSTRUCT
{
    int id;
    char name[128];
}MYSTRUCT;

int main()
{
    vector dystruct;
    MYSTRUCT mystruct;

    mystruct.id=3;
    strcpy(mystruct.name,"my name");

    dystruct.push_back(mystruct);

    printf("%s, %d\n", mystruct[0].name, mystruct[0].id);
    ....

It happens vector only supported in c++, that is only the bad thing I can say. There a lots more function, check out the reference.

Reference:
http://www.sgi.com/tech/stl/Vector.html

Trackback URL

One Response to “simple use of vector, dynamic array” :

  1. How about iterators instead of loops?

    Commented arntracks on June 1st, 2008.
Leave your own comments about this post: