My program enters the size of the vector from the user and then creates a vector of vectors (lets say SIZE1). In addition the user enters the number of vector of vectors he needs (lets say SIZE2) as follows:
class Vectors
{
// member functions goes here
private
vector<vector<int>> vectors;
vector<int>::iterator it;
};
void main()
{
...
A = new Vectors*[SIZE2];
for (int i=0; i<SIZE2; i++)
A[i] = new Vectors[SIZE1];
...
With a few calculations and insertions to my vector (vector of vectors)... the program works fine and gives me the results...
However, with huge calculations and insertions the program stops working and gives me this message
"Unhandled exception at at 0x770DC41F in Test.exe: Microsoft C++ exception:std:bad_alloc at memory location 0x001CEADC"
Thus, it seems that the vector reached it's maximum size... I tried to use reserve() but did not work
I read that "By default, when you run a 64-bit managed application on a 64-bit Windows operating system, you can create an object of no more than 2 gigabytes (GB). However, in the .NET Framework 4.5, you can increase this limit"
What do you think would be the best option for me to do (note my program is very long and complex)(I'm currently using Microsoft Visual Studio 2012 32Win application):
1. convert my program to the .NET Framework (C++)
2. convert my program to C# in case c# can help
3. do any settings on my computer (if it helps - my workstation has a 3.6GHZ xion processor with 32RAM
4. convert to another version of C++ that does not have any restriction on the size of the array (if available)
Please note that I never worked neither with the .NET framework nor C#