Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   C++ (http://www.programmingforums.org/forum15.html)
-   -   dynamic array help (http://www.programmingforums.org/showthread.php?t=14645)

quickster12 Nov 29th, 2007 9:45 PM

dynamic array help
 
Ok im one of those people that are just completely unable to pick up C++. Im forced to take this class and i have no prior programmin experience but at least theres only a few weeks left of this. Anyway, I just want help with this assingnment. I'm not lookin for anyone to do this for me i just want to be walkedthrough with this, cuz i will need to do somethin like this for the final. Here's the assingment verbatim and nobody needs to help me with the extra credit part i just need to get the base assinment done. Thanks.

The Base Assignment

Implement and thoroughly test a class named IVector that represents a
dynamic array of integers. It will have 3 private data members: int
capacity, int count, and int * items. The 'capacity' is the physical size
of the dynamic array (its actual number of elements). The 'count' is
the number of elements currently in use (indices 0, 1, ..., count-1).
The pointer 'items' points to the first element of the dynamic array,
which will be created by the operator 'new'.

Class IVector will have three constructors: 1) a default constructor
that creates an array of capacity = 2 and count = 0; 2) a constructor
with parameter int cap that creates an array of capacity = cap and count =
0; and 3) a copy constructor with parameter "const IVector & V" that
creates an array that is identical to IVector V.

Class IVector will have the following public member functions: 1) two
getters that return the capacity and the count of an IVector object; 2)
one declared "void Append( int item )" that adds 'item' to 'items' at
position 'count' and increments 'count' by one; 3) one declared "void
Insert( int index, int item ) "that adds 'item' to 'items' at position
'index' and increments 'count' by one; and one declared "void Delete(
int index )" that deletes the item at position 'index' and decrements
'count' by one.

Overload the operator '[ ]' to access elements of the vector by
subscript.


Extra Credit

The following extra credit items are optional. You can get a "100"
without doing them.

1) Add two private member functions declared "void Grow( )" and "void
Shrink( )". function Grow() doubles the capacity of the array 'items'
without losing any element values and function Shrink() halves the
capacity of the array 'items' without losing any element values. Call
Grow() whenever and wherever count == capacity and methods Append() or
Insert() have been called. Call Shrink() whenever and wherever count <=
capacity/4 and method Delete() has been called.

2) Overload the assignment operator '=' to let you write v2 = v1; to
copy vector v1 over v2, thus making v2 identical to v1. This, as
expected, will lose any data v2 originally held.

Ancient Dragon Nov 30th, 2007 12:16 AM

Re: dynamic array help
 
Looks like the instructions are pretty clear to me. Do you know how to create a c++ class? If not then you should read or reread about them in your textbook and probably do some of the exercises at the end of the chapter.

Do you know pointers ? such as int *items;. If not, then you need to study them some more as well.

Do you know how to allocate and delete memory using the new and delete operators? If not -- better study those some more too.

If you are confortable with all the above then you should be able to do the assignment with not too many problems. Give it a try, post the code you have done, and ask questions about what you don't understand.

quickster12 Nov 30th, 2007 12:33 AM

Re: dynamic array help
 
ok this is what i got but i keep getting a unexpected end to file error.
:

#include "stdafx.h"
#include <iostream>
using namespace std;
#include "IVec.h"

typedef int Capacity;
class IVector
{
private:
  Capacity * items;
  int count ;

public:
  IVector(int Count, int cap)
  {
          {int Capacity = 2;
                count = 0;
          }
          { [Capacity] = cap;
          count = 0;
          }
void IVector (const IVector & V )
{
cout << " The first value is ... " << V << endl;
}
void Append( int item )
{                count = Count;
          items = new Capacity [count];
          for ( int i = 0; i < count; i++)
                  items [i] = 0;
}
int Count( )  { return count; }
{
  Capacity & operator[]( int index )  { return items[index]; }
}
void Insert (int index, int item )
{item = items;
for (index = 0; index < count; index++)
                cout << [index] << " ";
                        cout << endl;
}void Delete (int index )
{
        delete item = index;
        for ( index = 0; index < count; index--)
}
  };
void ShowIVector( string label, IVector & v )
{
  cout << "\n " << label << ' ';
  for ( int i =  0;  i < v.Size();  ++i )
      cout << ' ' << v[i];
  cout << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{ IVector v1(20);

  cout << "\n v1.Size() = " << v1.Size() << endl;

  ShowIVector( "v1 = ", v1 );

  for ( int i =  0;  i < v1.Size();  ++i )
      v1[i] = i;

  ShowIVector( "v1 = ", v1 );

  cout << "\n Press [Enter] to quit ... ";
  cin.get( );
        return 0;
}
}


quickster12 Nov 30th, 2007 12:38 AM

Re: dynamic array help
 
you can neglect the #include IVec.h if you want cuz i put the class stuff in a header file so it was seperate obviously when i did the code.

Ancient Dragon Nov 30th, 2007 12:52 AM

Re: dynamic array help
 
I closed this thread because the op also posted the same on DaniWeb. No point in getting answeres (possibly conflicting) on two different boards.


All times are GMT -5. The time now is 3:39 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC