Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added copy constructor to min_heap.h #41

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

77Transam
Copy link

Created a copy constructor for the heap.

@spirosmaggioros
Copy link
Member

@77Transam Thanks for your interest to contributing and solving issues. I advice you to read the CONTRIBUTE.md and - in general - the readme files to see how to contribute. In your case, we just need to add some unit tests for the new function you implemented in order to be accepted. If you have any questions i will be pleased to answer them. Thank you!

@77Transam
Copy link
Author

77Transam commented Feb 14, 2024

Sorry, I am new at this. I tired following the steps listed under the Windows section in readme.md to run the tests. When I typed in make at the command prompt, I get the error message; 'make' is not recognized as an internal or external command, operable program or batch file. Can you offer some assistance?

@spirosmaggioros
Copy link
Member

Maybe you have to add C:\MinGW\bin to the path first. I don't know much about windows or what machine you have.Make sure you have MinGW downloaded first and foremost.

@77Transam
Copy link
Author

I have C:\mingw64\bin added to my path. I am also using VS code. Is there any other information that might help us figure this out?

@spirosmaggioros
Copy link
Member

It is your machine's problem that make is not recognized, i mean you can google it and maybe find a solution cause im not in control of your computer. Maybe try MinGW32-make instead of make. If this won't help, check this issue https://stackoverflow.com/questions/23723364/windows-7-make-is-not-recognized-as-an-internal-or-external-command-operabl

@77Transam
Copy link
Author

Thank you. The MingGW32-make did work. After changing the directory to tests, I was not able to go any further ./ is not recognized by windows. I also was not able to locate the path to the file in question execute.

$ ./runUnitTests
bash: ./runUnitTests: No such file or directory
$ runUnitTests
bash: runUnitTests: command not found

@spirosmaggioros
Copy link
Member

I guess there's an error in building. Please read the log of the build after the cmake .. or MinGW32-make. MinGW32-make should start building all the files, it should take approximately 1 minute to build and you should see all the files building up to 100%. If this don't happen for some reason, then the build failed some steps before.

@77Transam
Copy link
Author

I am getting errors when building on the hash_table and mat_1d

[ 67%] Building CXX object tests/CMakeFiles/runUnitTests.dir/hash_table/hash_table.cc.obj
In file included from C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\hash_table\hash_table.cc:1:
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/classes/hash_table/hash_table.h: In function 'std::ostream& operator<<(std::ostream&, hash_table<KeyType, ValueType>&)':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/classes/hash_table/hash_table.h:140:3: warning: no return statement in function returning non-void [-Wreturn-type]
  140 |   }
      |   ^
[ 69%] Building CXX object tests/CMakeFiles/runUnitTests.dir/linalg/mat1d/mat_1d.cc.obj
In file included from C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:1:
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:29:29: error: expected ')' before '<' token
   29 |   explicit Mat1d(std::vector<T> v = {}) : __size(SIZE) {
      |                 ~           ^
      |                             )
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:29:39: error: expected unqualified-id before ')' token
   29 |   explicit Mat1d(std::vector<T> v = {}) : __size(SIZE) {
      |                                       ^
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h: In constructor 'Mat1d<T, SIZE>::Mat1d(T)':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:58:12: error: returning a value from a constructor
   58 |     return *(this);
      |            ^~~~~~~
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc: In function 'void C_A_T_C_H_T_E_S_T_0()':
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:9:17: error: no matching function for call to 'Mat1d<int, 5>::Mat1d()'
    9 |   Mat1d<int, 5> mat;
      |                 ^~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = int; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note:   candidate expects 1 argument, 0 provided
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = int; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note:   candidate expects 1 argument, 0 provided
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:21:65: error: no matching function for call to 'Mat1d<char, 10>::Mat1d(<brace-enclosed initializer list>)'
   21 |   Mat1d<char, 10> mat2({'a','b','c','d','e','f','g','h','i','j'});
      |                                                                 ^
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = char; long long unsigned int SIZE = 10]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:25: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'Mat1d<char, 10>&'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |                  ~~~~~~~^~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = char; long long unsigned int SIZE = 10]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:26: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'char'
   54 |   explicit Mat1d(const T val) noexcept {
      |                  ~~~~~~~~^~~
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc: In function 'void C_A_T_C_H_T_E_S_T_2()':
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:31:17: error: no matching function for call to 'Mat1d<int, 5>::Mat1d()'
   31 |   Mat1d<int, 5> mat1;
      |                 ^~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = int; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note:   candidate expects 1 argument, 0 provided
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = int; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note:   candidate expects 1 argument, 0 provided
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:44:18: error: no matching function for call to 'Mat1d<char, 5>::Mat1d()'
   44 |   Mat1d<char, 5> mat3;
      |                  ^~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = char; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note:   candidate expects 1 argument, 0 provided
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = char; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note:   candidate expects 1 argument, 0 provided
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:49:18: error: no matching function for call to 'Mat1d<char, 5>::Mat1d()'
   49 |   Mat1d<char, 5> mat4;
      |                  ^~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = char; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note:   candidate expects 1 argument, 0 provided
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = char; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note:   candidate expects 1 argument, 0 provided
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc: In function 'void C_A_T_C_H_T_E_S_T_4()':
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:61:43: error: no matching function for call to 'Mat1d<char, 5>::Mat1d(<brace-enclosed initializer list>)'
   61 |   Mat1d<char, 5> mat({'a','b','c','d','e'});
      |                                           ^
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = char; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:25: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'Mat1d<char, 5>&'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |                  ~~~~~~~^~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = char; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:26: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'char'
   54 |   explicit Mat1d(const T val) noexcept {
      |                  ~~~~~~~~^~~
C:\Users\att77\Projects\CPPProjects\AlgoPlus\tests\linalg\mat1d\mat_1d.cc:69:69: error: no matching function for call to 'Mat1d<std::__cxx11::basic_string<char>, 5>::Mat1d(<brace-enclosed initializer list>)'
   69 |   Mat1d<std::string, 5> mat2({"hello", "world", "we", "are", "csrt"});
      |                                                                     ^
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(Mat1d<T, SIZE>&) [with T = std::__cxx11::basic_string<char>; long long unsigned int SIZE = 5]'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:66:25: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'Mat1d<std::__cxx11::basic_string<char>, 5>&'
   66 |   explicit Mat1d(Mat1d &mat) : __size(SIZE) {
      |                  ~~~~~~~^~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:12: note: candidate: 'Mat1d<T, SIZE>::Mat1d(T) [with T = std::__cxx11::basic_string<char>; long long unsigned int SIZE = 5]'
   54 |   explicit Mat1d(const T val) noexcept {
      |            ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:54:26: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::__cxx11::basic_string<char>'
   54 |   explicit Mat1d(const T val) noexcept {
      |                  ~~~~~~~~^~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h: In member function 'T& Mat1d<T, SIZE>::operator[](size_t) [with T = int; long long unsigned int SIZE = 5]':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:148:5: warning: control reaches end of non-void function [-Wreturn-type]
  148 |     catch(std::invalid_argument &e){
      |     ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h: In member function 'T& Mat1d<T, SIZE>::operator[](size_t) [with T = char; long long unsigned int SIZE = 10]':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:148:5: warning: control reaches end of non-void function [-Wreturn-type]
  148 |     catch(std::invalid_argument &e){
      |     ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h: In member function 'Mat1d<T, SIZE>& Mat1d<T, SIZE>::operator=(Mat1d<T, SIZE>&) [with T = char; long long unsigned int SIZE = 5]':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:97:5: warning: control reaches end of non-void function [-Wreturn-type]
   97 |     catch(std::logic_error &e){
      |     ^~~~~
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h: In member function 'T& Mat1d<T, SIZE>::operator[](size_t) [with T = char; long long unsigned int SIZE = 5]':
C:/Users/att77/Projects/CPPProjects/AlgoPlus/src/linalg/mat_1d.h:148:5: warning: control reaches end of non-void function [-Wreturn-type]
  148 |     catch(std::invalid_argument &e){
      |     ^~~~~
MinGW32-make[2]: *** [tests\CMakeFiles\runUnitTests.dir\build.make:511: tests/CMakeFiles/runUnitTests.dir/linalg/mat1d/mat_1d.cc.obj] Error 1
MinGW32-make[1]: *** [CMakeFiles\Makefile2:97: tests/CMakeFiles/runUnitTests.dir/all] Error 2
MinGW32-make: *** [makefile:100: all] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants