Vector vs. Dynamic Memory

Discussion in 'Programming General' started by Red Fuel Tank, Nov 15, 2010.

Vector vs. Dynamic Memory
  1. Unread #1 - Nov 15, 2010 at 4:03 AM
  2. Red Fuel Tank
    Joined:
    Jan 5, 2009
    Posts:
    87
    Referrals:
    0
    Sythe Gold:
    0

    Red Fuel Tank Member

    Vector vs. Dynamic Memory

    Hello,

    I created a program that uses dynamic memory to resize and fill arrays.

    Then, I removed the dynamic memory and tried to implement vectors. But I receive an error.

    Debug Assertion Failed!
    Program: ...\vc\include\vector
    Line: 932
    Expression: Vector subscript is out of range.

    Here is the script on pastebin.com

    http://pastebin.com/xx4Fmrcs

    Here is the script,

    Code:
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
    
    using namespace std;
    
    void RandomArrayFill( vector<int>& v, int size){
    
    /* This function fills each element in the array with
    a random number between 0 and 100. */
    
    	for( int i = 0; i < size; ++i ){
    		v[i] = rand() % 101;
    		cout << i + 1 << ". " << v[i] << endl;
    		cout << endl;
    	}
    }
    
    int main(){
    	srand( time(0) );
    
    	// Decides whether or not to quit.
    	char dec = 'a';
    	// Determines size of vector.
    	int size = 0;
    	// array is a vector( resizable array ). In this case, each element is an integer.
    	vector<int> array;
    
    	// TITLE
    	cout << "::Array Filler" << endl
    		 << "  ------------" << endl
    		 << endl << endl;
    
    	bool quit = false;
    
    	// While quit is false, begin loop.
    	while( !quit == true ){
    
    		//Enter size of array.
    		cout << "Please enter the size of your array: " << endl;
    		cin >> size;
    		cout << endl;
    
    		RandomArrayFill( array, size );
    
    		// Decide if we want to redo the previous process.
    		cout << "Again? (Y)es (N)o : ";
    		cin >> dec;
    		cout << endl;
    
    		// If Y or y, continue.
    		switch(dec){
    		case 'Y':
    		case 'y':
    			cout << "Repeating..." << endl;
    			break;
    
    		// If N or n, quit.
    		case 'N':
    		case 'n':
    			quit = true;
    			cout << "Exiting..." << endl;
    			break;
    
    		// If anything else, quit.
    		default:
    			cout << "Answer Invalid! Repeating Anyway..." << endl;
    			cout << endl;
    		}
    	}
    }

    EDIT:


    SOLVED IT


    Code:
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
    
    using namespace std;
    
    void RandomArrayFill( vector<int>& v){
    
    /* This function fills each element in the array with
    a random number between 0 and 100. */
    
    	for( int i = 0; i < v.size(); ++i ){
    		v[i] = rand() % 101;
    		cout << i + 1 << ". " << v[i] << endl;
    		cout << endl;
    	}
    }
    
    int main(){
    	srand( time(0) );
    
    	// Decides whether or not to quit.
    	char dec = 'a';
    	// Determines the size of array.
    	int size = 0;
    	// array is a vector( resizable array ). In this case, each element is an integer.
    	vector<int> intVec;
    
    	// TITLE
    	cout << "::Array Filler" << endl
    		 << "  ------------" << endl
    		 << endl << endl;
    
    	bool quit = false;
    
    	// While quit is false, begin loop.
    	while( !quit == true ){
    
    		//Enter size of array.
    		cout << "Please enter the size of your array: " << endl;
    		cin >> size;
    		intVec.resize(size);
    		cout << endl;
    
    		RandomArrayFill( intVec );
    
    		// Decide if we want to redo the previous process.
    		cout << "Again? (Y)es (N)o : ";
    		cin >> dec;
    		cout << endl;
    
    		// If Y or y, continue.
    		switch(dec){
    		case 'Y':
    		case 'y':
    			cout << "Repeating..." << endl;
    			break;
    
    		// If N or n, quit.
    		case 'N':
    		case 'n':
    			quit = true;
    			cout << "Exiting..." << endl;
    			break;
    
    		// If anything else, quit.
    		default:
    			cout << "Answer Invalid! Repeating Anyway..." << endl;
    			cout << endl;
    		}
    	}
    }
     
< MySql In a server. | Outward Spiral Algorithm >

Users viewing this thread
1 guest


 
 
Adblock breaks this site