Для решения задачи с помощью полного перебора использую динамический массив (вектор), куда сохраняются разные комбинации. При работе консольного кода:
| Код | #include <tchar.h> #include "conio.h" #include <vector> #include <iostream>
using namespace std; //---------------------------------------------------------------------------
typedef char gameState[3][3];
struct _vertex { gameState state; unsigned __int64 prevVertex; int cost; int heuristics; bool marked; };
gameState startingState = {{5,6,3},{2,7,0},{1,4,8}}; gameState neighbours[4]; vector <_vertex> L; _vertex v; int _tmain(int argc, _TCHAR* argv[]) { while(1) { try { L.push_back(v); } catch(...) { cout << L.size() << endl; break; } }
cout << "End of work." << endl; getch(); L.clear(); return 0; }
|
выделяется 741 мб памяти, больше не может, возникает ошибка. При работе кода в визуальном приложении, выделяется всего 470 мб памяти. Почему я не могу получить больше выделенной памяти? Хотя у меня Win 7 64 bit. Читал, что win 32 может максимум выделить 2ГБ, но в моем случае такого и близко нету.
|