![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Newbie
Join Date: Nov 2007
Posts: 3
Rep Power: 0
![]() |
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. |
|
|
|
|
#2 |
|
PFO God In Training
![]() Join Date: Jun 2005
Location: near St Louis, MO. (USA)
Posts: 498
Rep Power: 4
![]() |
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. |
|
|
|
|
#3 |
|
Newbie
Join Date: Nov 2007
Posts: 3
Rep Power: 0
![]() |
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;
}
} |
|
|
|
|
#4 |
|
Newbie
Join Date: Nov 2007
Posts: 3
Rep Power: 0
![]() |
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.
|
|
|
|
|
#5 |
|
PFO God In Training
![]() Join Date: Jun 2005
Location: near St Louis, MO. (USA)
Posts: 498
Rep Power: 4
![]() |
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.
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| dynamic array problem | rwm | C++ | 4 | May 14th, 2007 10:22 AM |
| dynamic array of structure pointer | atogrev | C | 7 | Oct 27th, 2006 2:23 PM |
| Dynamic array | ivan | C++ | 20 | Feb 15th, 2006 6:17 PM |
| dynamic union array doesn't work | Mathsniper | C | 13 | Nov 21st, 2005 6:34 AM |
| Installing IPB 2.03 | bh4575 | Other Web Development Languages | 0 | Apr 23rd, 2005 2:36 AM |