This commit is contained in:
Trygve 2024-03-13 01:52:23 +01:00
parent 53309822f7
commit 09548ce411
3 changed files with 35 additions and 9 deletions

View File

@ -28,6 +28,16 @@ Configuration::Configuration(int m, int n, int number_of_pieces) {
} }
} }
Configuration::~Configuration()
{
delete this->board;
}
/*
Configuration::Configuration(Configuration& t)
{
this->board = t.board;
}
*/
std::vector<Conflict> Configuration::get_conflicts() std::vector<Conflict> Configuration::get_conflicts()
{ {
std::vector<Conflict> conflicts; std::vector<Conflict> conflicts;

View File

@ -41,6 +41,18 @@ namespace queens
Board* board; Board* board;
Configuration(int m, int n, int number_of_pieces); Configuration(int m, int n, int number_of_pieces);
~Configuration();
// I could not get copy constructor and copy assignment operator to work :/
//Configuration(Configuration& t);
/*
Configuration& operator=(const Configuration& rhs)
{
this->board = rhs.board;
return *this;
}
*/
std::vector<Conflict> get_conflicts(); std::vector<Conflict> get_conflicts();
}; };

View File

@ -1,5 +1,7 @@
#include <chrono>
#include "queens.hh" #include "queens.hh"
#include <iostream> #include <iostream>
#include <fstream>
void print_conflict(queens::Conflict c) void print_conflict(queens::Conflict c)
{ {
@ -9,13 +11,15 @@ void print_conflict(queens::Conflict c)
int main() int main()
{ {
queens::Configuration config = queens::Configuration(8, 8, 10); std::ofstream log;
std::vector<queens::Conflict> conflicts = config.get_conflicts(); log.open ("time.csv", std::ios::app);
for (int i=0; i<conflicts.size(); i++) for (int k = 0; k<24*24; k++)
{ {
print_conflict(conflicts[i]); auto t0 = std::chrono::high_resolution_clock::now();
queens::Configuration config = queens::Configuration(24, 24, k);
std::vector<queens::Conflict> conflicts = config.get_conflicts();
auto t1 = std::chrono::high_resolution_clock::now();
log << 1.0e-06 * std::chrono::duration_cast<std::chrono::microseconds>(t1-t0).count() << "\n";
} }
log.close();
} }