Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Solutions Sem. 08 / ex3 / WordCollection.h
diff options
context:
space:
mode:
Commit9829b368ce529df277397e3b465fc536fa65ebfd (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-04-14 23:53:14 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-04-14 23:53:14 +0300
Files502a0f1a061a4177e7117118ba2f3164f993ef63 /Year 1/Object-oriented Programming/Solutions Sem. 08/ex3/WordCollection.h
uni-projects-9829b368ce529df277397e3b465fc536fa65ebfd.tar
uni-projects-9829b368ce529df277397e3b465fc536fa65ebfd.tar.gz
uni-projects-9829b368ce529df277397e3b465fc536fa65ebfd.zip
Parent27cf6165d0592f842ed667a8da3013489213c2a1 (diff)
Implemented (broken) overall functionality of ex3 of sem 08
1 files changed, 38 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Solutions Sem. 08/ex3/WordCollection.h38
diff --git a/Year 1/Object-oriented Programming/Solutions Sem. 08/ex3/WordCollection.h b/Year 1/Object-oriented Programming/Solutions Sem. 08/ex3/WordCollection.h
new file mode 100644
index 0000000..f7a7142
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Solutions Sem. 08/ex3/WordCollection.h
@@ -0,0 +1,38 @@
+#include "DynStr.h"
+#include <istream>
+#include <ostream>
+
+class WordCollection {
+ DynStr* words;
+ int* sortMap;
+ int count;
+ int length;
+
+ void free();
+ void copyFrom(const WordCollection& other);
+
+ void resize();
+ void insertSortMapIndex(int position, int value);
+ void removeSortMapIndex(int position);
+ int findSortMapIndexWhen(int condition, const char* str);
+
+public:
+ WordCollection();
+
+ WordCollection(const WordCollection& other);
+ WordCollection& operator=(const WordCollection& other);
+ ~WordCollection();
+
+ WordCollection& operator+=(const WordCollection& other);
+ WordCollection& operator-=(const WordCollection& other);
+ WordCollection& operator*=(const char* str);
+ WordCollection& operator/=(const char* str);
+
+ friend std::ostream& operator<<(std::ostream& ostrm, const WordCollection& collection);
+ friend std::istream& operator>>(std::istream& istrm, WordCollection& collection);
+
+ bool operator[](const char* str);
+};
+
+const WordCollection operator+(const WordCollection& lhs, const WordCollection& rhs);
+const WordCollection operator-(const WordCollection& lhs, const WordCollection& rhs);